mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-10-18 23:58:32 +00:00
Compare commits
43 Commits
2.3.3
...
light-vers
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0b41378dca | ||
![]() |
8ec96fc891 | ||
![]() |
6eef09efd8 | ||
![]() |
1112057979 | ||
![]() |
8e18c47d30 | ||
![]() |
4788bfbc3f | ||
![]() |
71b11ed829 | ||
![]() |
3aedafa306 | ||
![]() |
284dd83d7d | ||
![]() |
c09b5f718a | ||
![]() |
dba57b312c | ||
![]() |
90d3d77ca4 | ||
![]() |
0aec778e84 | ||
![]() |
84d2dfd13e | ||
![]() |
86c7fd7b59 | ||
![]() |
de265694ee | ||
![]() |
8462d8a391 | ||
![]() |
48d6d37539 | ||
![]() |
d1065886ef | ||
![]() |
8773bd67ab | ||
![]() |
4189b086de | ||
![]() |
3fc8474d71 | ||
![]() |
4cf9909a07 | ||
![]() |
41844c9470 | ||
![]() |
7c231fff76 | ||
![]() |
d6235f0a0c | ||
![]() |
d377d00042 | ||
![]() |
f232010bec | ||
![]() |
788017bb99 | ||
![]() |
9331d2ec0d | ||
![]() |
6e695429cc | ||
![]() |
4f8b9800a0 | ||
![]() |
f72d1f0ac8 | ||
![]() |
0fe0feace4 | ||
![]() |
43f0ccb250 | ||
![]() |
c0b0b84d79 | ||
![]() |
3d82cb3525 | ||
![]() |
9cbee0eacf | ||
![]() |
63e9dfd7f5 | ||
![]() |
3ccc864453 | ||
![]() |
44f15238d6 | ||
![]() |
4a3abf542c | ||
![]() |
91bb75ca97 |
93
.github/workflows/assets/linux.Dockerfile
vendored
93
.github/workflows/assets/linux.Dockerfile
vendored
@@ -1,43 +1,28 @@
|
|||||||
# The Arduino IDE Linux build workflow job runs in this container.
|
# The Arduino IDE Linux build workflow job runs in this container.
|
||||||
# syntax=docker/dockerfile:1
|
# 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/
|
# This is required in order to use the Ubuntu package repositories for EOL Ubuntu versions:
|
||||||
ARG node_version="18.17.1"
|
# 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 \
|
RUN \
|
||||||
apt-get \
|
apt-get \
|
||||||
--yes \
|
--yes \
|
||||||
update
|
update
|
||||||
|
|
||||||
# This is required to get add-apt-repository
|
|
||||||
RUN \
|
RUN \
|
||||||
apt-get \
|
apt-get \
|
||||||
--yes \
|
--yes \
|
||||||
install \
|
install \
|
||||||
"software-properties-common=0.96.24.32.22"
|
"git"
|
||||||
|
|
||||||
# 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"
|
|
||||||
|
|
||||||
# The repository path must be added to safe.directory, otherwise any Git operations on it would fail with a
|
# 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.
|
# "dubious ownership" error. actions/checkout configures this, but it is not applied to containers.
|
||||||
@@ -51,18 +36,12 @@ ENV \
|
|||||||
|
|
||||||
# Install Python
|
# Install Python
|
||||||
# The Python installed by actions/setup-python has dependency on a higher version of glibc than available in the
|
# 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 \
|
RUN \
|
||||||
apt-get \
|
apt-get \
|
||||||
--yes \
|
--yes \
|
||||||
install \
|
install \
|
||||||
"python3.8-minimal=3.8.0-3ubuntu1~18.04.2" && \
|
"python3.7-minimal=3.7.3-2~18.10"
|
||||||
\
|
|
||||||
ln \
|
|
||||||
--symbolic \
|
|
||||||
--force \
|
|
||||||
"$(which python3.8)" \
|
|
||||||
"/usr/bin/python3"
|
|
||||||
|
|
||||||
# Install Theia's package dependencies
|
# Install Theia's package dependencies
|
||||||
# These are pre-installed in the GitHub Actions hosted runner machines.
|
# These are pre-installed in the GitHub Actions hosted runner machines.
|
||||||
@@ -70,43 +49,15 @@ RUN \
|
|||||||
apt-get \
|
apt-get \
|
||||||
--yes \
|
--yes \
|
||||||
install \
|
install \
|
||||||
"libsecret-1-dev=0.18.6-1" \
|
"libsecret-1-dev=0.18.6-3" \
|
||||||
"libx11-dev=2:1.6.4-3ubuntu0.4" \
|
"libx11-dev=2:1.6.7-1" \
|
||||||
"libxkbfile-dev=1:1.0.9-2"
|
"libxkbfile-dev=1:1.0.9-2"
|
||||||
|
|
||||||
# Install Node.js
|
# Target python3 symlink to Python 3.7 installation. It would otherwise target version 3.6 due to the installation of
|
||||||
# It is necessary to use the "unofficial" linux-x64-glibc-217 build because the official Node.js 18.x is dynamically
|
# the `python3` package as a transitive dependency.
|
||||||
# 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"
|
|
||||||
RUN \
|
RUN \
|
||||||
mkdir "$node_installation_path" && \
|
ln \
|
||||||
cd "$node_installation_path" && \
|
--symbolic \
|
||||||
\
|
--force \
|
||||||
apt-get \
|
"$(which python3.7)" \
|
||||||
--yes \
|
"/usr/bin/python3"
|
||||||
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"
|
|
||||||
|
177
.github/workflows/build.yml
vendored
177
.github/workflows/build.yml
vendored
@@ -48,9 +48,10 @@ env:
|
|||||||
GO_VERSION: '1.21'
|
GO_VERSION: '1.21'
|
||||||
# See: https://github.com/actions/setup-node/#readme
|
# See: https://github.com/actions/setup-node/#readme
|
||||||
NODE_VERSION: '18.17'
|
NODE_VERSION: '18.17'
|
||||||
JOB_TRANSFER_ARTIFACT: build-artifacts
|
YARN_VERSION: '1.22'
|
||||||
|
JOB_TRANSFER_ARTIFACT_PREFIX: build-artifacts-
|
||||||
CHANGELOG_ARTIFACTS: changelog
|
CHANGELOG_ARTIFACTS: changelog
|
||||||
STAGED_CHANNEL_FILES_ARTIFACT: staged-channel-files
|
STAGED_CHANNEL_FILE_ARTIFACT_PREFIX: staged-channel-file-
|
||||||
BASE_BUILD_DATA: |
|
BASE_BUILD_DATA: |
|
||||||
- config:
|
- config:
|
||||||
# Human identifier for the job.
|
# Human identifier for the job.
|
||||||
@@ -68,6 +69,8 @@ env:
|
|||||||
certificate-extension: pfx
|
certificate-extension: pfx
|
||||||
# Container for windows cert signing
|
# Container for windows cert signing
|
||||||
certificate-container: INSTALLER_CERT_WINDOWS_CONTAINER
|
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
|
# 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
|
# and the companion needs.select-targets.outputs.merge-channel-files property (output values always have string
|
||||||
# type).
|
# type).
|
||||||
@@ -91,6 +94,7 @@ env:
|
|||||||
{
|
{
|
||||||
\"image\": \"ghcr.io/arduino/arduino-ide/linux:main\"
|
\"image\": \"ghcr.io/arduino/arduino-ide/linux:main\"
|
||||||
}
|
}
|
||||||
|
job-transfer-artifact-suffix: Linux_64bit
|
||||||
mergeable-channel-file: 'false'
|
mergeable-channel-file: 'false'
|
||||||
artifacts:
|
artifacts:
|
||||||
- path: '*Linux_64bit.zip'
|
- path: '*Linux_64bit.zip'
|
||||||
@@ -107,6 +111,7 @@ env:
|
|||||||
certificate-secret: APPLE_SIGNING_CERTIFICATE_P12
|
certificate-secret: APPLE_SIGNING_CERTIFICATE_P12
|
||||||
certificate-password-secret: KEYCHAIN_PASSWORD
|
certificate-password-secret: KEYCHAIN_PASSWORD
|
||||||
certificate-extension: p12
|
certificate-extension: p12
|
||||||
|
job-transfer-artifact-suffix: macOS_64bit
|
||||||
mergeable-channel-file: 'true'
|
mergeable-channel-file: 'true'
|
||||||
artifacts:
|
artifacts:
|
||||||
- path: '*macOS_64bit.dmg'
|
- path: '*macOS_64bit.dmg'
|
||||||
@@ -121,12 +126,17 @@ env:
|
|||||||
certificate-secret: APPLE_SIGNING_CERTIFICATE_P12
|
certificate-secret: APPLE_SIGNING_CERTIFICATE_P12
|
||||||
certificate-password-secret: KEYCHAIN_PASSWORD
|
certificate-password-secret: KEYCHAIN_PASSWORD
|
||||||
certificate-extension: p12
|
certificate-extension: p12
|
||||||
|
job-transfer-artifact-suffix: macOS_arm64
|
||||||
mergeable-channel-file: 'true'
|
mergeable-channel-file: 'true'
|
||||||
artifacts:
|
artifacts:
|
||||||
- path: '*macOS_arm64.dmg'
|
- path: '*macOS_arm64.dmg'
|
||||||
name: macOS_arm64_dmg
|
name: macOS_arm64_dmg
|
||||||
- path: '*macOS_arm64.zip'
|
- path: '*macOS_arm64.zip'
|
||||||
name: 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:
|
jobs:
|
||||||
run-determination:
|
run-determination:
|
||||||
@@ -229,7 +239,7 @@ jobs:
|
|||||||
) | \
|
) | \
|
||||||
yq \
|
yq \
|
||||||
--output-format json \
|
--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"
|
# The build matrix produces two macOS jobs (x86 and ARM) so the "channel update info files"
|
||||||
@@ -248,7 +258,7 @@ jobs:
|
|||||||
echo "${{ env.BASE_BUILD_DATA }}" | \
|
echo "${{ env.BASE_BUILD_DATA }}" | \
|
||||||
yq \
|
yq \
|
||||||
--output-format json \
|
--output-format json \
|
||||||
'[.[].artifacts.[]]'
|
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
merge_channel_files="false"
|
merge_channel_files="false"
|
||||||
@@ -284,8 +294,9 @@ jobs:
|
|||||||
# We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
|
# 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
|
# 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"
|
SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
|
||||||
WIN_CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }}
|
WIN_CERT_PASSWORD: ${{ secrets[matrix.config.certificate-password-secret] }}
|
||||||
WIN_CERT_CONTAINER_NAME: ${{ secrets.INSTALLER_CERT_WINDOWS_CONTAINER }}
|
WIN_CERT_CONTAINER_NAME: ${{ secrets[matrix.config.certificate-container] }}
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
config: ${{ fromJson(needs.select-targets.outputs.build-matrix) }}
|
config: ${{ fromJson(needs.select-targets.outputs.build-matrix) }}
|
||||||
@@ -306,56 +317,46 @@ jobs:
|
|||||||
if not exist "${{ matrix.config.working-directory }}" mklink /d "${{ matrix.config.working-directory }}" "C:\actions-runner\_work\arduino-ide\arduino-ide"
|
if not exist "${{ matrix.config.working-directory }}" mklink /d "${{ matrix.config.working-directory }}" "C:\actions-runner\_work\arduino-ide\arduino-ide"
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
if: fromJSON(matrix.config.container) == null
|
|
||||||
uses: actions/checkout@v4
|
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
|
- name: Install Node.js
|
||||||
if: fromJSON(matrix.config.container) == null && runner.os != 'Windows'
|
if: runner.name != 'WINDOWS-SIGN-PC'
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
node-version: ${{ env.NODE_VERSION }}
|
||||||
registry-url: 'https://registry.npmjs.org'
|
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
|
- name: Install Python 3.x
|
||||||
if: fromJSON(matrix.config.container) == null && runner.os != 'Windows'
|
if: fromJSON(matrix.config.container) == null && runner.name != 'WINDOWS-SIGN-PC'
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.11.x'
|
python-version: '3.11.x'
|
||||||
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
if: fromJSON(matrix.config.container) == null && runner.os != 'Windows'
|
if: runner.name != 'WINDOWS-SIGN-PC'
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GO_VERSION }}
|
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 && runner.os != 'Windows'
|
|
||||||
uses: actions/setup-go@v4
|
|
||||||
with:
|
|
||||||
go-version: ${{ env.GO_VERSION }}
|
|
||||||
|
|
||||||
- name: Install Taskfile
|
- name: Install Taskfile
|
||||||
if: fromJSON(matrix.config.container) == null && runner.os != 'Windows'
|
if: runner.name != 'WINDOWS-SIGN-PC'
|
||||||
uses: arduino/setup-task@v2
|
uses: arduino/setup-task@v2
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
version: 3.x
|
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 && runner.os != 'Windows'
|
|
||||||
uses: arduino/setup-task@v1
|
|
||||||
with:
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
version: 3.x
|
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -367,12 +368,7 @@ jobs:
|
|||||||
IS_NIGHTLY: ${{ needs.build-type-determination.outputs.is-nightly }}
|
IS_NIGHTLY: ${{ needs.build-type-determination.outputs.is-nightly }}
|
||||||
IS_RELEASE: ${{ needs.build-type-determination.outputs.is-release }}
|
IS_RELEASE: ${{ needs.build-type-determination.outputs.is-release }}
|
||||||
CAN_SIGN: ${{ secrets[matrix.config.certificate-secret] != '' }}
|
CAN_SIGN: ${{ secrets[matrix.config.certificate-secret] != '' }}
|
||||||
# The CREATE_* environment vars are only used to run tests. These secrets are optional. Dependent tests will
|
working-directory: ${{ matrix.config.working-directory || './' }}
|
||||||
# be skipped if not available.
|
|
||||||
CREATE_USERNAME: ${{ secrets.CREATE_USERNAME }}
|
|
||||||
CREATE_PASSWORD: ${{ secrets.CREATE_PASSWORD }}
|
|
||||||
CREATE_CLIENT_SECRET: ${{ secrets.CREATE_CLIENT_SECRET }}
|
|
||||||
working-directory: ${{ runner.os == 'Windows' && matrix.config.working-directory || './' }}
|
|
||||||
run: |
|
run: |
|
||||||
# See: https://www.electron.build/code-signing
|
# See: https://www.electron.build/code-signing
|
||||||
if [ $CAN_SIGN = false ] || [ $IS_WINDOWS_CONFIG = true ]; then
|
if [ $CAN_SIGN = false ] || [ $IS_WINDOWS_CONFIG = true ]; then
|
||||||
@@ -385,13 +381,9 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
npx node-gyp install
|
npx node-gyp install
|
||||||
yarn install --immutable
|
yarn install
|
||||||
|
|
||||||
yarn --cwd arduino-ide-extension build
|
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 rebuild
|
||||||
yarn --cwd electron-app build
|
yarn --cwd electron-app build
|
||||||
yarn --cwd electron-app package
|
yarn --cwd electron-app package
|
||||||
@@ -402,7 +394,7 @@ jobs:
|
|||||||
if: >
|
if: >
|
||||||
needs.select-targets.outputs.merge-channel-files == 'true' &&
|
needs.select-targets.outputs.merge-channel-files == 'true' &&
|
||||||
matrix.config.mergeable-channel-file == 'true'
|
matrix.config.mergeable-channel-file == 'true'
|
||||||
working-directory: ${{ runner.os == 'Windows' && matrix.config.working-directory || './' }}
|
working-directory: ${{ matrix.config.working-directory || './' }}
|
||||||
run: |
|
run: |
|
||||||
staged_channel_files_path="${{ runner.temp }}/staged-channel-files"
|
staged_channel_files_path="${{ runner.temp }}/staged-channel-files"
|
||||||
mkdir "$staged_channel_files_path"
|
mkdir "$staged_channel_files_path"
|
||||||
@@ -415,21 +407,20 @@ jobs:
|
|||||||
echo "STAGED_CHANNEL_FILES_PATH=$staged_channel_files_path" >> "$GITHUB_ENV"
|
echo "STAGED_CHANNEL_FILES_PATH=$staged_channel_files_path" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Upload staged-for-merge channel file artifact
|
- name: Upload staged-for-merge channel file artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
if: >
|
if: >
|
||||||
needs.select-targets.outputs.merge-channel-files == 'true' &&
|
needs.select-targets.outputs.merge-channel-files == 'true' &&
|
||||||
matrix.config.mergeable-channel-file == 'true'
|
matrix.config.mergeable-channel-file == 'true'
|
||||||
with:
|
with:
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
name: ${{ env.STAGED_CHANNEL_FILES_ARTIFACT }}
|
name: ${{ env.STAGED_CHANNEL_FILE_ARTIFACT_PREFIX }}${{ matrix.config.job-transfer-artifact-suffix }}
|
||||||
path: ${{ runner.os == 'Windows' && matrix.config.working-directory && format('{0}/{1}', matrix.config.working-directory, env.STAGED_CHANNEL_FILES_PATH) || env.STAGED_CHANNEL_FILES_PATH }}
|
path: ${{ matrix.config.working-directory && format('{0}/{1}', matrix.config.working-directory, env.STAGED_CHANNEL_FILES_PATH) || env.STAGED_CHANNEL_FILES_PATH }}
|
||||||
|
|
||||||
|
- name: Upload builds to job transfer artifact
|
||||||
- name: Upload [GitHub Actions]
|
uses: actions/upload-artifact@v4
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
with:
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}${{ matrix.config.job-transfer-artifact-suffix }}
|
||||||
path: ${{ runner.os == 'Windows' && matrix.config.working-directory && format('{0}/{1}', matrix.config.working-directory, env.BUILD_ARTIFACTS_PATH) || env.BUILD_ARTIFACTS_PATH }}
|
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
|
- name: Manual Clean up for self-hosted runners
|
||||||
if: runner.os == 'Windows' && matrix.config.working-directory
|
if: runner.os == 'Windows' && matrix.config.working-directory
|
||||||
@@ -454,16 +445,17 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download staged-for-merge channel files artifact
|
- name: Download staged-for-merge channel file artifacts
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ env.STAGED_CHANNEL_FILES_ARTIFACT }}
|
merge-multiple: true
|
||||||
path: ${{ env.CHANNEL_FILES_PATH }}
|
path: ${{ env.CHANNEL_FILES_PATH }}
|
||||||
|
pattern: ${{ env.STAGED_CHANNEL_FILE_ARTIFACT_PREFIX }}*
|
||||||
|
|
||||||
- name: Remove no longer needed artifact
|
- name: Remove no longer needed artifacts
|
||||||
uses: geekyeggo/delete-artifact@v2
|
uses: geekyeggo/delete-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: ${{ env.STAGED_CHANNEL_FILES_ARTIFACT }}
|
name: ${{ env.STAGED_CHANNEL_FILE_ARTIFACT_PREFIX }}*
|
||||||
|
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
@@ -493,11 +485,11 @@ jobs:
|
|||||||
--channel "${{ needs.build-type-determination.outputs.channel-name }}" \
|
--channel "${{ needs.build-type-determination.outputs.channel-name }}" \
|
||||||
--input "${{ env.CHANNEL_FILES_PATH }}"
|
--input "${{ env.CHANNEL_FILES_PATH }}"
|
||||||
|
|
||||||
- name: Upload merged channel files to job transfer artifact
|
- name: Upload merged channel files job transfer artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}channel-files
|
||||||
path: ${{ env.CHANNEL_FILES_PATH }}
|
path: ${{ env.CHANNEL_FILES_PATH }}
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -508,22 +500,25 @@ jobs:
|
|||||||
if: always() && needs.build.result != 'skipped'
|
if: always() && needs.build.result != 'skipped'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
BUILD_ARTIFACTS_FOLDER: build-artifacts
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
artifact: ${{ fromJson(needs.select-targets.outputs.artifact-matrix) }}
|
artifact: ${{ fromJson(needs.select-targets.outputs.artifact-matrix) }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download job transfer artifact
|
- name: Download job transfer artifact that contains ${{ matrix.artifact.name }} tester build
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}${{ matrix.artifact.job-transfer-artifact-suffix }}
|
||||||
path: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
path: ${{ env.BUILD_ARTIFACTS_FOLDER }}
|
||||||
|
|
||||||
- name: Upload tester build artifact
|
- name: Upload tester build artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.artifact.name }}
|
name: ${{ matrix.artifact.name }}
|
||||||
path: ${{ env.JOB_TRANSFER_ARTIFACT }}/${{ matrix.artifact.path }}
|
path: ${{ env.BUILD_ARTIFACTS_FOLDER }}/${{ matrix.artifact.path }}
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
needs:
|
needs:
|
||||||
@@ -566,11 +561,11 @@ jobs:
|
|||||||
|
|
||||||
echo "$BODY" > CHANGELOG.txt
|
echo "$BODY" > CHANGELOG.txt
|
||||||
|
|
||||||
- name: Upload Changelog [GitHub Actions]
|
- name: Upload changelog job transfer artifact
|
||||||
if: needs.build-type-determination.outputs.is-nightly == 'true'
|
if: needs.build-type-determination.outputs.is-nightly == 'true'
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}changelog
|
||||||
path: CHANGELOG.txt
|
path: CHANGELOG.txt
|
||||||
|
|
||||||
publish:
|
publish:
|
||||||
@@ -589,18 +584,23 @@ jobs:
|
|||||||
needs.build-type-determination.outputs.publish-to-s3 == 'true' &&
|
needs.build-type-determination.outputs.publish-to-s3 == 'true' &&
|
||||||
needs.build-type-determination.outputs.is-nightly == 'true'
|
needs.build-type-determination.outputs.is-nightly == 'true'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
ARTIFACTS_FOLDER: build-artifacts
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download [GitHub Actions]
|
- name: Download all job transfer artifacts
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
merge-multiple: true
|
||||||
path: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
path: ${{ env.ARTIFACTS_FOLDER }}
|
||||||
|
pattern: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}*
|
||||||
|
|
||||||
- name: Publish Nightly [S3]
|
- name: Publish Nightly [S3]
|
||||||
uses: docker://plugins/s3
|
uses: docker://plugins/s3
|
||||||
env:
|
env:
|
||||||
PLUGIN_SOURCE: '${{ env.JOB_TRANSFER_ARTIFACT }}/*'
|
PLUGIN_SOURCE: '${{ env.ARTIFACTS_FOLDER }}/*'
|
||||||
PLUGIN_STRIP_PREFIX: '${{ env.JOB_TRANSFER_ARTIFACT }}/'
|
PLUGIN_STRIP_PREFIX: '${{ env.ARTIFACTS_FOLDER }}/'
|
||||||
PLUGIN_TARGET: '/arduino-ide/nightly'
|
PLUGIN_TARGET: '/arduino-ide/nightly'
|
||||||
PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }}
|
PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }}
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
@@ -621,12 +621,17 @@ jobs:
|
|||||||
needs.changelog.result == 'success' &&
|
needs.changelog.result == 'success' &&
|
||||||
needs.build-type-determination.outputs.is-release == 'true'
|
needs.build-type-determination.outputs.is-release == 'true'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
ARTIFACTS_FOLDER: build-artifacts
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download [GitHub Actions]
|
- name: Download all job transfer artifacts
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
merge-multiple: true
|
||||||
path: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
path: ${{ env.ARTIFACTS_FOLDER }}
|
||||||
|
pattern: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}*
|
||||||
|
|
||||||
- name: Get Tag
|
- name: Get Tag
|
||||||
id: tag_name
|
id: tag_name
|
||||||
@@ -634,11 +639,11 @@ jobs:
|
|||||||
echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Publish Release [GitHub]
|
- name: Publish Release [GitHub]
|
||||||
uses: svenstaro/upload-release-action@2.7.0
|
uses: svenstaro/upload-release-action@2.9.0
|
||||||
with:
|
with:
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
release_name: ${{ steps.tag_name.outputs.TAG_NAME }}
|
release_name: ${{ steps.tag_name.outputs.TAG_NAME }}
|
||||||
file: ${{ env.JOB_TRANSFER_ARTIFACT }}/*
|
file: ${{ env.ARTIFACTS_FOLDER }}/*
|
||||||
tag: ${{ github.ref }}
|
tag: ${{ github.ref }}
|
||||||
file_glob: true
|
file_glob: true
|
||||||
body: ${{ needs.changelog.outputs.BODY }}
|
body: ${{ needs.changelog.outputs.BODY }}
|
||||||
@@ -647,8 +652,8 @@ jobs:
|
|||||||
if: needs.build-type-determination.outputs.publish-to-s3 == 'true'
|
if: needs.build-type-determination.outputs.publish-to-s3 == 'true'
|
||||||
uses: docker://plugins/s3
|
uses: docker://plugins/s3
|
||||||
env:
|
env:
|
||||||
PLUGIN_SOURCE: '${{ env.JOB_TRANSFER_ARTIFACT }}/*'
|
PLUGIN_SOURCE: '${{ env.ARTIFACTS_FOLDER }}/*'
|
||||||
PLUGIN_STRIP_PREFIX: '${{ env.JOB_TRANSFER_ARTIFACT }}/'
|
PLUGIN_STRIP_PREFIX: '${{ env.ARTIFACTS_FOLDER }}/'
|
||||||
PLUGIN_TARGET: '/arduino-ide'
|
PLUGIN_TARGET: '/arduino-ide'
|
||||||
PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }}
|
PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }}
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
@@ -666,7 +671,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Remove unneeded job transfer artifact
|
- name: Remove unneeded job transfer artifacts
|
||||||
uses: geekyeggo/delete-artifact@v2
|
uses: geekyeggo/delete-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
|
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}*
|
||||||
|
2
.github/workflows/check-containers.yml
vendored
2
.github/workflows/check-containers.yml
vendored
@@ -43,7 +43,7 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build and push to local registry
|
- name: Build and push to local registry
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ${{ matrix.image.path }}
|
file: ${{ matrix.image.path }}
|
||||||
|
88
.github/workflows/check-javascript.yml
vendored
Normal file
88
.github/workflows/check-javascript.yml
vendored
Normal 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
91
.github/workflows/check-yarn.yml
vendored
Normal 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"
|
2
.github/workflows/i18n-weekly-pull.yml
vendored
2
.github/workflows/i18n-weekly-pull.yml
vendored
@@ -46,7 +46,7 @@ jobs:
|
|||||||
TRANSIFEX_API_KEY: ${{ secrets.TRANSIFEX_API_KEY }}
|
TRANSIFEX_API_KEY: ${{ secrets.TRANSIFEX_API_KEY }}
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v5
|
uses: peter-evans/create-pull-request@v7
|
||||||
with:
|
with:
|
||||||
commit-message: Updated translation files
|
commit-message: Updated translation files
|
||||||
title: Update translation files
|
title: Update translation files
|
||||||
|
2
.github/workflows/push-container-images.yml
vendored
2
.github/workflows/push-container-images.yml
vendored
@@ -59,7 +59,7 @@ jobs:
|
|||||||
images: ${{ matrix.image.registry }}/${{ matrix.image.name }}
|
images: ${{ matrix.image.registry }}/${{ matrix.image.name }}
|
||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ${{ matrix.image.path }}
|
file: ${{ matrix.image.path }}
|
||||||
|
19
.github/workflows/sync-labels.yml
vendored
19
.github/workflows/sync-labels.yml
vendored
@@ -19,7 +19,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
CONFIGURATIONS_FOLDER: .github/label-configuration-files
|
CONFIGURATIONS_FOLDER: .github/label-configuration-files
|
||||||
CONFIGURATIONS_ARTIFACT: label-configuration-files
|
CONFIGURATIONS_ARTIFACT_PREFIX: label-configuration-file-
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
@@ -71,13 +71,13 @@ jobs:
|
|||||||
file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }}
|
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
|
- name: Pass configuration files to next job via workflow artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
*.yaml
|
*.yaml
|
||||||
*.yml
|
*.yml
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
|
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}${{ matrix.filename }}
|
||||||
|
|
||||||
sync:
|
sync:
|
||||||
needs: download
|
needs: download
|
||||||
@@ -108,16 +108,17 @@ jobs:
|
|||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download configuration files artifact
|
- name: Download configuration file artifacts
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
|
merge-multiple: true
|
||||||
|
pattern: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
|
||||||
path: ${{ env.CONFIGURATIONS_FOLDER }}
|
path: ${{ env.CONFIGURATIONS_FOLDER }}
|
||||||
|
|
||||||
- name: Remove unneeded artifact
|
- name: Remove unneeded artifacts
|
||||||
uses: geekyeggo/delete-artifact@v2
|
uses: geekyeggo/delete-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
|
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
|
||||||
|
|
||||||
- name: Merge label configuration files
|
- name: Merge label configuration files
|
||||||
run: |
|
run: |
|
||||||
|
134
.github/workflows/test-javascript.yml
vendored
Normal file
134
.github/workflows/test-javascript.yml
vendored
Normal 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
|
2
.github/workflows/themes-weekly-pull.yml
vendored
2
.github/workflows/themes-weekly-pull.yml
vendored
@@ -55,7 +55,7 @@ jobs:
|
|||||||
run: yarn run themes:generate
|
run: yarn run themes:generate
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v5
|
uses: peter-evans/create-pull-request@v7
|
||||||
with:
|
with:
|
||||||
commit-message: Updated themes
|
commit-message: Updated themes
|
||||||
title: Update themes
|
title: Update themes
|
||||||
|
@@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
# Arduino IDE 2.x
|
# Arduino IDE 2.x
|
||||||
|
|
||||||
[](https://github.com/arduino/arduino-ide/actions?query=workflow%3A%22Arduino+IDE%22)
|
[](https://github.com/arduino/arduino-ide/actions/workflows/build.yml)
|
||||||
|
[](https://github.com/arduino/arduino-ide/actions/workflows/check-javascript.yml)
|
||||||
|
[](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).
|
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).
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "arduino-ide-extension",
|
"name": "arduino-ide-extension",
|
||||||
"version": "2.3.3",
|
"version": "2.3.5",
|
||||||
"description": "An extension for Theia building the Arduino IDE",
|
"description": "An extension for Theia building the Arduino IDE",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"download-ls": "node ./scripts/download-ls.js",
|
"download-ls": "node ./scripts/download-ls.js",
|
||||||
"download-examples": "node ./scripts/download-examples.js",
|
"download-examples": "node ./scripts/download-examples.js",
|
||||||
"generate-protocol": "node ./scripts/generate-protocol.js",
|
"generate-protocol": "node ./scripts/generate-protocol.js",
|
||||||
"lint": "eslint",
|
"lint": "eslint .",
|
||||||
"prebuild": "rimraf lib",
|
"prebuild": "rimraf lib",
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"build:dev": "yarn build",
|
"build:dev": "yarn build",
|
||||||
@@ -39,6 +39,7 @@
|
|||||||
"@theia/outline-view": "1.41.0",
|
"@theia/outline-view": "1.41.0",
|
||||||
"@theia/output": "1.41.0",
|
"@theia/output": "1.41.0",
|
||||||
"@theia/plugin-ext": "1.41.0",
|
"@theia/plugin-ext": "1.41.0",
|
||||||
|
"@theia/plugin-ext-vscode": "1.41.0",
|
||||||
"@theia/preferences": "1.41.0",
|
"@theia/preferences": "1.41.0",
|
||||||
"@theia/scm": "1.41.0",
|
"@theia/scm": "1.41.0",
|
||||||
"@theia/search-in-workspace": "1.41.0",
|
"@theia/search-in-workspace": "1.41.0",
|
||||||
@@ -66,6 +67,7 @@
|
|||||||
"cross-fetch": "^3.1.5",
|
"cross-fetch": "^3.1.5",
|
||||||
"dateformat": "^3.0.3",
|
"dateformat": "^3.0.3",
|
||||||
"deepmerge": "^4.2.2",
|
"deepmerge": "^4.2.2",
|
||||||
|
"dompurify": "^2.4.7",
|
||||||
"drivelist": "^9.2.4",
|
"drivelist": "^9.2.4",
|
||||||
"electron-updater": "^4.6.5",
|
"electron-updater": "^4.6.5",
|
||||||
"fast-deep-equal": "^3.1.3",
|
"fast-deep-equal": "^3.1.3",
|
||||||
@@ -73,7 +75,7 @@
|
|||||||
"fast-safe-stringify": "^2.1.1",
|
"fast-safe-stringify": "^2.1.1",
|
||||||
"filename-reserved-regex": "^2.0.0",
|
"filename-reserved-regex": "^2.0.0",
|
||||||
"fqbn": "^1.0.5",
|
"fqbn": "^1.0.5",
|
||||||
"glob": "^7.1.6",
|
"glob": "10.4.4",
|
||||||
"google-protobuf": "^3.20.1",
|
"google-protobuf": "^3.20.1",
|
||||||
"hash.js": "^1.1.7",
|
"hash.js": "^1.1.7",
|
||||||
"is-online": "^10.0.0",
|
"is-online": "^10.0.0",
|
||||||
@@ -127,8 +129,8 @@
|
|||||||
"rimraf": "^2.6.1"
|
"rimraf": "^2.6.1"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"grpc-tools": "^1.12.4",
|
"@pingghost/protoc": "^1.0.2",
|
||||||
"@pingghost/protoc": "^1.0.2"
|
"grpc-tools": "^1.12.4"
|
||||||
},
|
},
|
||||||
"mocha": {
|
"mocha": {
|
||||||
"require": [
|
"require": [
|
||||||
@@ -170,7 +172,7 @@
|
|||||||
],
|
],
|
||||||
"arduino": {
|
"arduino": {
|
||||||
"arduino-cli": {
|
"arduino-cli": {
|
||||||
"version": "1.0.4"
|
"version": "1.1.1"
|
||||||
},
|
},
|
||||||
"arduino-fwuploader": {
|
"arduino-fwuploader": {
|
||||||
"version": "2.4.1"
|
"version": "2.4.1"
|
||||||
|
@@ -34,7 +34,7 @@
|
|||||||
}, '');
|
}, '');
|
||||||
|
|
||||||
const args = process.argv.slice(2);
|
const args = process.argv.slice(2);
|
||||||
if (args.length == 0) {
|
if (args.length === 0) {
|
||||||
console.error('Missing argument to destination file');
|
console.error('Missing argument to destination file');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
@@ -3,14 +3,15 @@
|
|||||||
(async () => {
|
(async () => {
|
||||||
const os = require('node:os');
|
const os = require('node:os');
|
||||||
const path = require('node:path');
|
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 { exec } = require('./utils');
|
||||||
const glob = require('glob');
|
const { glob } = require('glob');
|
||||||
const { SemVer, gte, valid: validSemVer } = require('semver');
|
const { SemVer, gte, valid: validSemVer, eq } = require('semver');
|
||||||
// Use a node-protoc fork until apple arm32 is supported
|
// Use a node-protoc fork until apple arm32 is supported
|
||||||
// https://github.com/YePpHa/node-protoc/pull/10
|
// https://github.com/YePpHa/node-protoc/pull/10
|
||||||
const protoc = path.dirname(require('@pingghost/protoc/protoc'));
|
const protoc = path.dirname(require('@pingghost/protoc/protoc'));
|
||||||
const repository = await fs.mkdtemp(path.join(os.tmpdir(), 'arduino-cli-'));
|
|
||||||
|
|
||||||
const { owner, repo, commitish } = (() => {
|
const { owner, repo, commitish } = (() => {
|
||||||
const pkg = require(path.join(__dirname, '..', 'package.json'));
|
const pkg = require(path.join(__dirname, '..', 'package.json'));
|
||||||
@@ -57,11 +58,6 @@
|
|||||||
return { owner, repo, commitish };
|
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 { platform } = process;
|
||||||
const resourcesFolder = path.join(
|
const resourcesFolder = path.join(
|
||||||
__dirname,
|
__dirname,
|
||||||
@@ -87,112 +83,207 @@
|
|||||||
// - `git-snapshot` for local build executed via `task build`. We do not do this.
|
// - `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.
|
// - 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",
|
"Application": "arduino-cli",
|
||||||
"VersionString": "nightly-20210126",
|
"VersionString": "nightly-20210126",
|
||||||
"Commit": "079bb6c6",
|
"Commit": "079bb6c6",
|
||||||
"Status": "alpha",
|
"Status": "alpha",
|
||||||
"Date": "2021-01-26T01:46:31Z"
|
"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}`;
|
|
||||||
}
|
}
|
||||||
console.log(`>>> Checking out tagged version: '${version}'...`);
|
*/
|
||||||
exec('git', ['-C', repository, 'fetch', '--all', '--tags'], {
|
const versionObject = JSON.parse(versionJson);
|
||||||
logStdout: true,
|
|
||||||
|
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(
|
rmSync(repoFolder, { recursive: true, maxRetries: 5, force: true });
|
||||||
'git',
|
|
||||||
['-C', repository, 'checkout', `tags/${version}`, '-b', version],
|
// Patch for https://github.com/arduino/arduino-cli/issues/2755
|
||||||
{ logStdout: true }
|
// 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(
|
console.log(
|
||||||
`>>> Checking out commitish from 'package.json': '${commitish}'...`
|
`<<< Finished downloading and extracting proto files for ${version}.`
|
||||||
);
|
|
||||||
exec('git', ['-C', repository, 'checkout', commitish], { logStdout: true });
|
|
||||||
console.log(
|
|
||||||
`<<< Checked out commitish from 'package.json': '${commitish}'.`
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
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) {
|
} else if (versionObject.Commit) {
|
||||||
console.log(
|
protosFolder = await getProtosFromRepo(versionObject.Commit);
|
||||||
`>>> Checking out commitish from the CLI: '${versionObject.Commit}'...`
|
}
|
||||||
);
|
|
||||||
exec('git', ['-C', repository, 'checkout', versionObject.Commit], {
|
if (!protosFolder) {
|
||||||
logStdout: true,
|
console.log(`Could not get proto files: missing commitish or version.`);
|
||||||
});
|
process.exit(1);
|
||||||
console.log(
|
}
|
||||||
`<<< Checked out commitish from the CLI: '${versionObject.Commit}'.`
|
|
||||||
);
|
const protos = await globProtos(protosFolder);
|
||||||
} else {
|
|
||||||
console.log(`WARN: no 'git checkout'. Generating from the HEAD revision.`);
|
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:');
|
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');
|
const out = path.join(__dirname, '..', 'src', 'node', 'cli-protocol');
|
||||||
// Must wipe the gen output folder. Otherwise, dangling service implementation remain in IDE2 code,
|
// Must wipe the gen output folder. Otherwise, dangling service implementation remain in IDE2 code,
|
||||||
// although it has been removed from the proto file.
|
// although it has been removed from the proto file.
|
||||||
// For example, https://github.com/arduino/arduino-cli/commit/50a8bf5c3e61d5b661ccfcd6a055e82eeb510859.
|
// 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 });
|
mkdirSync(out, { recursive: true });
|
||||||
|
|
||||||
const protos = await new Promise((resolve) =>
|
try {
|
||||||
glob('**/*.proto', { cwd: rpc }, (error, matches) => {
|
// Generate JS code from the `.proto` files.
|
||||||
if (error) {
|
exec(
|
||||||
console.log(error.stack ?? error.message);
|
'grpc_tools_node_protoc',
|
||||||
resolve([]);
|
[
|
||||||
return;
|
`--js_out=import_style=commonjs,binary:${out}`,
|
||||||
}
|
`--grpc_out=generate_package_definition:${out}`,
|
||||||
resolve(matches.map((filename) => path.join(rpc, filename)));
|
'-I',
|
||||||
})
|
protosFolder,
|
||||||
);
|
...protos,
|
||||||
if (!protos || protos.length === 0) {
|
],
|
||||||
console.log(`Could not find any .proto files under ${rpc}.`);
|
{ logStdout: true }
|
||||||
process.exit(1);
|
);
|
||||||
|
|
||||||
|
// 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.');
|
console.log('<<< Generation was successful.');
|
||||||
})();
|
})();
|
||||||
|
@@ -42,6 +42,7 @@ import { ArduinoMenus } from './menu/arduino-menus';
|
|||||||
import { MonitorViewContribution } from './serial/monitor/monitor-view-contribution';
|
import { MonitorViewContribution } from './serial/monitor/monitor-view-contribution';
|
||||||
import { SerialPlotterContribution } from './serial/plotter/plotter-frontend-contribution';
|
import { SerialPlotterContribution } from './serial/plotter/plotter-frontend-contribution';
|
||||||
import { ArduinoToolbar } from './toolbar/arduino-toolbar';
|
import { ArduinoToolbar } from './toolbar/arduino-toolbar';
|
||||||
|
import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/frontend-application-config-provider';
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class ArduinoFrontendContribution
|
export class ArduinoFrontendContribution
|
||||||
@@ -103,6 +104,12 @@ export class ArduinoFrontendContribution
|
|||||||
}
|
}
|
||||||
|
|
||||||
registerToolbarItems(registry: TabBarToolbarRegistry): void {
|
registerToolbarItems(registry: TabBarToolbarRegistry): void {
|
||||||
|
const config = FrontendApplicationConfigProvider.get();
|
||||||
|
|
||||||
|
debugger;
|
||||||
|
if (config.isLightVersion) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
registry.registerItem({
|
registry.registerItem({
|
||||||
id: BoardsToolBarItem.TOOLBAR_ID,
|
id: BoardsToolBarItem.TOOLBAR_ID,
|
||||||
render: () => (
|
render: () => (
|
||||||
|
@@ -1,5 +1,9 @@
|
|||||||
import '../../src/browser/style/index.css';
|
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 { WidgetFactory } from '@theia/core/lib/browser/widget-manager';
|
||||||
import { CommandContribution } from '@theia/core/lib/common/command';
|
import { CommandContribution } from '@theia/core/lib/common/command';
|
||||||
import { bindViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
|
import { bindViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
|
||||||
@@ -53,6 +57,8 @@ import {
|
|||||||
DockPanelRenderer as TheiaDockPanelRenderer,
|
DockPanelRenderer as TheiaDockPanelRenderer,
|
||||||
TabBarRendererFactory,
|
TabBarRendererFactory,
|
||||||
ContextMenuRenderer,
|
ContextMenuRenderer,
|
||||||
|
createTreeContainer,
|
||||||
|
TreeWidget,
|
||||||
} from '@theia/core/lib/browser';
|
} from '@theia/core/lib/browser';
|
||||||
import { MenuContribution } from '@theia/core/lib/common/menu';
|
import { MenuContribution } from '@theia/core/lib/common/menu';
|
||||||
import {
|
import {
|
||||||
@@ -79,7 +85,6 @@ import { TabBarDecoratorService as TheiaTabBarDecoratorService } from '@theia/co
|
|||||||
import { TabBarDecoratorService } from './theia/core/tab-bar-decorator';
|
import { TabBarDecoratorService } from './theia/core/tab-bar-decorator';
|
||||||
import { ProblemManager as TheiaProblemManager } from '@theia/markers/lib/browser';
|
import { ProblemManager as TheiaProblemManager } from '@theia/markers/lib/browser';
|
||||||
import { ProblemManager } from './theia/markers/problem-manager';
|
import { ProblemManager } from './theia/markers/problem-manager';
|
||||||
import { BoardsAutoInstaller } from './boards/boards-auto-installer';
|
|
||||||
import { ShellLayoutRestorer } from './theia/core/shell-layout-restorer';
|
import { ShellLayoutRestorer } from './theia/core/shell-layout-restorer';
|
||||||
import {
|
import {
|
||||||
ArduinoComponentContextMenuRenderer,
|
ArduinoComponentContextMenuRenderer,
|
||||||
@@ -216,9 +221,6 @@ import { NotificationsRenderer as TheiaNotificationsRenderer } from '@theia/mess
|
|||||||
import { NotificationsRenderer } from './theia/messages/notifications-renderer';
|
import { NotificationsRenderer } from './theia/messages/notifications-renderer';
|
||||||
import { SketchbookWidgetContribution } from './widgets/sketchbook/sketchbook-widget-contribution';
|
import { SketchbookWidgetContribution } from './widgets/sketchbook/sketchbook-widget-contribution';
|
||||||
import { LocalCacheFsProvider } from './local-cache/local-cache-fs-provider';
|
import { LocalCacheFsProvider } from './local-cache/local-cache-fs-provider';
|
||||||
import { CloudSketchbookWidget } from './widgets/cloud-sketchbook/cloud-sketchbook-widget';
|
|
||||||
import { CloudSketchbookTreeWidget } from './widgets/cloud-sketchbook/cloud-sketchbook-tree-widget';
|
|
||||||
import { createCloudSketchbookTreeWidget } from './widgets/cloud-sketchbook/cloud-sketchbook-tree-container';
|
|
||||||
import { CreateApi } from './create/create-api';
|
import { CreateApi } from './create/create-api';
|
||||||
import { ShareSketchDialog } from './dialogs/cloud-share-sketch-dialog';
|
import { ShareSketchDialog } from './dialogs/cloud-share-sketch-dialog';
|
||||||
import { AuthenticationClientService } from './auth/authentication-client-service';
|
import { AuthenticationClientService } from './auth/authentication-client-service';
|
||||||
@@ -372,6 +374,19 @@ import { DebugSessionWidget } from '@theia/debug/lib/browser/view/debug-session-
|
|||||||
import { DebugConfigurationWidget } from './theia/debug/debug-configuration-widget';
|
import { DebugConfigurationWidget } from './theia/debug/debug-configuration-widget';
|
||||||
import { DebugConfigurationWidget as TheiaDebugConfigurationWidget } from '@theia/debug/lib/browser/view/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 { 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.
|
// Hack to fix copy/cut/paste issue after electron version update in Theia.
|
||||||
// https://github.com/eclipse-theia/theia/issues/12487
|
// https://github.com/eclipse-theia/theia/issues/12487
|
||||||
@@ -478,8 +493,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
.whenTargetNamed('store');
|
.whenTargetNamed('store');
|
||||||
|
|
||||||
// Boards auto-installer
|
// Boards auto-installer
|
||||||
bind(BoardsAutoInstaller).toSelf().inSingletonScope();
|
// bind(BoardsAutoInstaller).toSelf().inSingletonScope();
|
||||||
bind(FrontendApplicationContribution).toService(BoardsAutoInstaller);
|
// bind(FrontendApplicationContribution).toService(BoardsAutoInstaller);
|
||||||
|
|
||||||
// Boards list widget
|
// Boards list widget
|
||||||
bind(BoardsListWidget).toSelf();
|
bind(BoardsListWidget).toSelf();
|
||||||
@@ -951,11 +966,11 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
createWidget: () => ctx.container.get(SketchbookCompositeWidget),
|
createWidget: () => ctx.container.get(SketchbookCompositeWidget),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
bind(CloudSketchbookWidget).toSelf();
|
// bind(CloudSketchbookWidget).toSelf();
|
||||||
rebind(SketchbookWidget).toService(CloudSketchbookWidget);
|
// rebind(SketchbookWidget).toService(CloudSketchbookWidget);
|
||||||
bind(CloudSketchbookTreeWidget).toDynamicValue(({ container }) =>
|
// bind(CloudSketchbookTreeWidget).toDynamicValue(({ container }) =>
|
||||||
createCloudSketchbookTreeWidget(container)
|
// createCloudSketchbookTreeWidget(container)
|
||||||
);
|
// );
|
||||||
bind(CreateApi).toSelf().inSingletonScope();
|
bind(CreateApi).toSelf().inSingletonScope();
|
||||||
bind(SketchCache).toSelf().inSingletonScope();
|
bind(SketchCache).toSelf().inSingletonScope();
|
||||||
bind(CreateFeatures).toSelf().inSingletonScope();
|
bind(CreateFeatures).toSelf().inSingletonScope();
|
||||||
@@ -999,6 +1014,11 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
title: 'IDEUpdater',
|
title: 'IDEUpdater',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
bind(VersionWelcomeDialog).toSelf().inSingletonScope();
|
||||||
|
bind(VersionWelcomeDialogProps).toConstantValue({
|
||||||
|
title: 'VersionWelcomeDialog',
|
||||||
|
});
|
||||||
|
|
||||||
bind(UserFieldsDialog).toSelf().inSingletonScope();
|
bind(UserFieldsDialog).toSelf().inSingletonScope();
|
||||||
bind(UserFieldsDialogProps).toConstantValue({
|
bind(UserFieldsDialogProps).toConstantValue({
|
||||||
title: 'UserFields',
|
title: 'UserFields',
|
||||||
@@ -1082,4 +1102,43 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
rebind(TheiaTerminalFrontendContribution).toService(
|
rebind(TheiaTerminalFrontendContribution).toService(
|
||||||
TerminalFrontendContribution
|
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();
|
||||||
|
}
|
||||||
|
@@ -137,6 +137,18 @@ const properties: ArduinoPreferenceSchemaProperties = {
|
|||||||
'arduino.upload.verify': {
|
'arduino.upload.verify': {
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
default: false,
|
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': {
|
'arduino.window.autoScale': {
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
@@ -327,6 +339,7 @@ export interface ArduinoConfiguration {
|
|||||||
'arduino.compile.warnings': CompilerWarnings;
|
'arduino.compile.warnings': CompilerWarnings;
|
||||||
'arduino.upload.verbose': boolean;
|
'arduino.upload.verbose': boolean;
|
||||||
'arduino.upload.verify': boolean;
|
'arduino.upload.verify': boolean;
|
||||||
|
'arduino.upload.autoVerify': boolean;
|
||||||
'arduino.window.autoScale': boolean;
|
'arduino.window.autoScale': boolean;
|
||||||
'arduino.ide.updateChannel': UpdateChannel;
|
'arduino.ide.updateChannel': UpdateChannel;
|
||||||
'arduino.ide.updateBaseUrl': string;
|
'arduino.ide.updateBaseUrl': string;
|
||||||
|
@@ -52,6 +52,10 @@ export class BoardsAutoInstaller implements FrontendApplicationContribution {
|
|||||||
private readonly toDispose = new DisposableCollection();
|
private readonly toDispose = new DisposableCollection();
|
||||||
|
|
||||||
onStart(): void {
|
onStart(): void {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.toDispose.pushAll([
|
this.toDispose.pushAll([
|
||||||
this.boardsServiceProvider.onBoardsConfigDidChange((event) => {
|
this.boardsServiceProvider.onBoardsConfigDidChange((event) => {
|
||||||
if (isBoardIdentifierChangeEvent(event)) {
|
if (isBoardIdentifierChangeEvent(event)) {
|
||||||
|
@@ -222,6 +222,20 @@ export class BoardsDataStore
|
|||||||
return data;
|
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({
|
async selectProgrammer({
|
||||||
fqbn,
|
fqbn,
|
||||||
selectedProgrammer,
|
selectedProgrammer,
|
||||||
@@ -299,9 +313,15 @@ export class BoardsDataStore
|
|||||||
return `.arduinoIDE-configOptions-${fqbn}`;
|
return `.arduinoIDE-configOptions-${fqbn}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadBoardDetails(fqbn: string): Promise<BoardDetails | undefined> {
|
async loadBoardDetails(
|
||||||
|
fqbn: string,
|
||||||
|
forceRefresh = false
|
||||||
|
): Promise<BoardDetails | undefined> {
|
||||||
try {
|
try {
|
||||||
const details = await this.boardsService.getBoardDetails({ fqbn });
|
const details = await this.boardsService.getBoardDetails({
|
||||||
|
fqbn,
|
||||||
|
forceRefresh,
|
||||||
|
});
|
||||||
return details;
|
return details;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (
|
if (
|
||||||
|
@@ -20,6 +20,7 @@ import {
|
|||||||
} from '../../common/protocol';
|
} from '../../common/protocol';
|
||||||
import type { BoardList } from '../../common/protocol/board-list';
|
import type { BoardList } from '../../common/protocol/board-list';
|
||||||
import { BoardsListWidget } from '../boards/boards-list-widget';
|
import { BoardsListWidget } from '../boards/boards-list-widget';
|
||||||
|
import { BoardsDataStore } from '../boards/boards-data-store';
|
||||||
import { BoardsServiceProvider } from '../boards/boards-service-provider';
|
import { BoardsServiceProvider } from '../boards/boards-service-provider';
|
||||||
import {
|
import {
|
||||||
ArduinoMenus,
|
ArduinoMenus,
|
||||||
@@ -39,6 +40,8 @@ export class BoardSelection extends SketchContribution {
|
|||||||
private readonly menuModelRegistry: MenuModelRegistry;
|
private readonly menuModelRegistry: MenuModelRegistry;
|
||||||
@inject(NotificationCenter)
|
@inject(NotificationCenter)
|
||||||
private readonly notificationCenter: NotificationCenter;
|
private readonly notificationCenter: NotificationCenter;
|
||||||
|
@inject(BoardsDataStore)
|
||||||
|
private readonly boardsDataStore: BoardsDataStore;
|
||||||
@inject(BoardsService)
|
@inject(BoardsService)
|
||||||
private readonly boardsService: BoardsService;
|
private readonly boardsService: BoardsService;
|
||||||
@inject(BoardsServiceProvider)
|
@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 {
|
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 = {
|
const getBoardInfo = {
|
||||||
commandId: BoardSelection.Commands.GET_BOARD_INFO.id,
|
commandId: BoardSelection.Commands.GET_BOARD_INFO.id,
|
||||||
label: nls.localize('arduino/board/getBoardInfo', 'Get Board Info'),
|
label: nls.localize('arduino/board/getBoardInfo', 'Get Board Info'),
|
||||||
@@ -361,5 +402,8 @@ SN: ${SN}
|
|||||||
export namespace BoardSelection {
|
export namespace BoardSelection {
|
||||||
export namespace Commands {
|
export namespace Commands {
|
||||||
export const GET_BOARD_INFO: Command = { id: 'arduino-get-board-info' };
|
export const GET_BOARD_INFO: Command = { id: 'arduino-get-board-info' };
|
||||||
|
export const RELOAD_BOARD_DATA: Command = {
|
||||||
|
id: 'arduino-reload-board-data',
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,6 +35,10 @@ export class BoardsDataMenuUpdater extends Contribution {
|
|||||||
private readonly toDisposeOnBoardChange = new DisposableCollection();
|
private readonly toDisposeOnBoardChange = new DisposableCollection();
|
||||||
|
|
||||||
override onStart(): void {
|
override onStart(): void {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.boardsDataStore.onDidChange(() =>
|
this.boardsDataStore.onDidChange(() =>
|
||||||
this.updateMenuActions(
|
this.updateMenuActions(
|
||||||
this.boardsServiceProvider.boardsConfig.selectedBoard
|
this.boardsServiceProvider.boardsConfig.selectedBoard
|
||||||
|
@@ -3,10 +3,14 @@ import { LocalStorageService } from '@theia/core/lib/browser/storage-service';
|
|||||||
import { inject, injectable } from '@theia/core/shared/inversify';
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
||||||
import {
|
import {
|
||||||
IDEUpdater,
|
IDEUpdater,
|
||||||
|
LAST_USED_IDE_VERSION,
|
||||||
SKIP_IDE_VERSION,
|
SKIP_IDE_VERSION,
|
||||||
} from '../../common/protocol/ide-updater';
|
} from '../../common/protocol/ide-updater';
|
||||||
import { IDEUpdaterDialog } from '../dialogs/ide-updater/ide-updater-dialog';
|
import { IDEUpdaterDialog } from '../dialogs/ide-updater/ide-updater-dialog';
|
||||||
import { Contribution } from './contribution';
|
import { Contribution } from './contribution';
|
||||||
|
import { VersionWelcomeDialog } from '../dialogs/version-welcome-dialog';
|
||||||
|
import { AppService } from '../app-service';
|
||||||
|
import { SemVer } from 'semver';
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class CheckForIDEUpdates extends Contribution {
|
export class CheckForIDEUpdates extends Contribution {
|
||||||
@@ -16,9 +20,15 @@ export class CheckForIDEUpdates extends Contribution {
|
|||||||
@inject(IDEUpdaterDialog)
|
@inject(IDEUpdaterDialog)
|
||||||
private readonly updaterDialog: IDEUpdaterDialog;
|
private readonly updaterDialog: IDEUpdaterDialog;
|
||||||
|
|
||||||
|
@inject(VersionWelcomeDialog)
|
||||||
|
private readonly versionWelcomeDialog: VersionWelcomeDialog;
|
||||||
|
|
||||||
@inject(LocalStorageService)
|
@inject(LocalStorageService)
|
||||||
private readonly localStorage: LocalStorageService;
|
private readonly localStorage: LocalStorageService;
|
||||||
|
|
||||||
|
@inject(AppService)
|
||||||
|
private readonly appService: AppService;
|
||||||
|
|
||||||
override onStart(): void {
|
override onStart(): void {
|
||||||
this.preferences.onPreferenceChanged(
|
this.preferences.onPreferenceChanged(
|
||||||
({ preferenceName, newValue, oldValue }) => {
|
({ preferenceName, newValue, oldValue }) => {
|
||||||
@@ -36,7 +46,11 @@ export class CheckForIDEUpdates extends Contribution {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
override onReady(): void {
|
override async onReady(): Promise<void> {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.updater
|
this.updater
|
||||||
.init(
|
.init(
|
||||||
this.preferences.get('arduino.ide.updateChannel'),
|
this.preferences.get('arduino.ide.updateChannel'),
|
||||||
@@ -49,7 +63,13 @@ export class CheckForIDEUpdates extends Contribution {
|
|||||||
return this.updater.checkForUpdates(true);
|
return this.updater.checkForUpdates(true);
|
||||||
})
|
})
|
||||||
.then(async (updateInfo) => {
|
.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>(
|
const versionToSkip = await this.localStorage.getData<string>(
|
||||||
SKIP_IDE_VERSION
|
SKIP_IDE_VERSION
|
||||||
);
|
);
|
||||||
@@ -64,6 +84,44 @@ export class CheckForIDEUpdates extends Contribution {
|
|||||||
e.message
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -289,8 +289,8 @@ export class Debug
|
|||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
if (err instanceof Error) {
|
if (err instanceof Error) {
|
||||||
try {
|
try {
|
||||||
const tempBuildPaths = await this.sketchesService.tempBuildPath(sketch);
|
const buildPaths = await this.sketchesService.getBuildPath(sketch);
|
||||||
return tempBuildPaths.some((tempBuildPath) =>
|
return buildPaths.some((tempBuildPath) =>
|
||||||
err.message.includes(tempBuildPath)
|
err.message.includes(tempBuildPath)
|
||||||
);
|
);
|
||||||
} catch {
|
} catch {
|
||||||
|
@@ -16,6 +16,10 @@ export class IndexesUpdateProgress extends Contribution {
|
|||||||
| undefined;
|
| undefined;
|
||||||
|
|
||||||
override onStart(): void {
|
override onStart(): void {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.notificationCenter.onIndexUpdateWillStart(({ progressId }) =>
|
this.notificationCenter.onIndexUpdateWillStart(({ progressId }) =>
|
||||||
this.getOrCreateProgress(progressId)
|
this.getOrCreateProgress(progressId)
|
||||||
);
|
);
|
||||||
|
@@ -113,6 +113,10 @@ export class InoLanguage extends SketchContribution {
|
|||||||
private languageServerFqbn?: string;
|
private languageServerFqbn?: string;
|
||||||
|
|
||||||
override onReady(): void {
|
override onReady(): void {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const start = (
|
const start = (
|
||||||
selectedBoard: BoardIdentifier | undefined,
|
selectedBoard: BoardIdentifier | undefined,
|
||||||
forceStart = false
|
forceStart = false
|
||||||
@@ -191,6 +195,10 @@ export class InoLanguage extends SketchContribution {
|
|||||||
name: string | undefined,
|
name: string | undefined,
|
||||||
forceStart = false
|
forceStart = false
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const port = await this.daemon.tryGetPort();
|
const port = await this.daemon.tryGetPort();
|
||||||
if (typeof port !== 'number') {
|
if (typeof port !== 'number') {
|
||||||
return;
|
return;
|
||||||
|
@@ -45,6 +45,10 @@ export class UpdateIndexes extends Contribution {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async checkForUpdates(): Promise<void> {
|
private async checkForUpdates(): Promise<void> {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const checkForUpdates = this.preferences['arduino.checkForUpdates'];
|
const checkForUpdates = this.preferences['arduino.checkForUpdates'];
|
||||||
if (!checkForUpdates) {
|
if (!checkForUpdates) {
|
||||||
console.debug(
|
console.debug(
|
||||||
@@ -83,6 +87,10 @@ export class UpdateIndexes extends Contribution {
|
|||||||
types: IndexType[],
|
types: IndexType[],
|
||||||
force = false
|
force = false
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const updatedAt = new Date().toISOString();
|
const updatedAt = new Date().toISOString();
|
||||||
return Promise.all(
|
return Promise.all(
|
||||||
types.map((type) => this.needsIndexUpdate(type, updatedAt, force))
|
types.map((type) => this.needsIndexUpdate(type, updatedAt, force))
|
||||||
@@ -104,6 +112,10 @@ export class UpdateIndexes extends Contribution {
|
|||||||
now: string,
|
now: string,
|
||||||
force = false
|
force = false
|
||||||
): Promise<IndexType | false> {
|
): Promise<IndexType | false> {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (force) {
|
if (force) {
|
||||||
console.debug(
|
console.debug(
|
||||||
`[update-indexes]: Update for index type: '${type}' was forcefully requested.`
|
`[update-indexes]: Update for index type: '${type}' was forcefully requested.`
|
||||||
|
@@ -104,6 +104,7 @@ export class UploadSketch extends CoreServiceContribution {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
const autoVerify = this.preferences['arduino.upload.autoVerify'];
|
||||||
// toggle the toolbar button and menu item state.
|
// toggle the toolbar button and menu item state.
|
||||||
// uploadInProgress will be set to false whether the upload fails or not
|
// uploadInProgress will be set to false whether the upload fails or not
|
||||||
this.uploadInProgress = true;
|
this.uploadInProgress = true;
|
||||||
@@ -116,7 +117,7 @@ export class UploadSketch extends CoreServiceContribution {
|
|||||||
'arduino-verify-sketch',
|
'arduino-verify-sketch',
|
||||||
<VerifySketchParams>{
|
<VerifySketchParams>{
|
||||||
exportBinaries: false,
|
exportBinaries: false,
|
||||||
silent: true,
|
mode: autoVerify ? 'auto' : 'dry-run',
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
if (!verifyOptions) {
|
if (!verifyOptions) {
|
||||||
|
@@ -15,23 +15,35 @@ import {
|
|||||||
} from './contribution';
|
} from './contribution';
|
||||||
import { CoreErrorHandler } from './core-error-handler';
|
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 {
|
export interface VerifySketchParams {
|
||||||
/**
|
/**
|
||||||
* Same as `CoreService.Options.Compile#exportBinaries`
|
* Same as `CoreService.Options.Compile#exportBinaries`
|
||||||
*/
|
*/
|
||||||
readonly exportBinaries?: boolean;
|
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,
|
* - `"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.
|
|
||||||
*/
|
*/
|
||||||
type VerifyProgress = 'idle' | 'explicit-verify' | 'automatic-verify';
|
type VerifyProgress = 'idle' | VerifySketchMode;
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class VerifySketch extends CoreServiceContribution {
|
export class VerifySketch extends CoreServiceContribution {
|
||||||
@@ -54,10 +66,10 @@ export class VerifySketch extends CoreServiceContribution {
|
|||||||
registry.registerCommand(VerifySketch.Commands.VERIFY_SKETCH_TOOLBAR, {
|
registry.registerCommand(VerifySketch.Commands.VERIFY_SKETCH_TOOLBAR, {
|
||||||
isVisible: (widget) =>
|
isVisible: (widget) =>
|
||||||
ArduinoToolbar.is(widget) && widget.side === 'left',
|
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
|
// 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
|
// https://github.com/arduino/arduino-ide/pull/1750#pullrequestreview-1214762975
|
||||||
isToggled: () => this.verifyProgress === 'explicit-verify',
|
isToggled: () => this.verifyProgress === 'explicit',
|
||||||
execute: () =>
|
execute: () =>
|
||||||
registry.executeCommand(VerifySketch.Commands.VERIFY_SKETCH.id),
|
registry.executeCommand(VerifySketch.Commands.VERIFY_SKETCH.id),
|
||||||
});
|
});
|
||||||
@@ -113,19 +125,22 @@ export class VerifySketch extends CoreServiceContribution {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.verifyProgress = params?.silent
|
this.verifyProgress = params?.mode ?? 'explicit';
|
||||||
? 'automatic-verify'
|
|
||||||
: 'explicit-verify';
|
|
||||||
this.onDidChangeEmitter.fire();
|
this.onDidChangeEmitter.fire();
|
||||||
this.menuManager.update();
|
this.menuManager.update();
|
||||||
this.clearVisibleNotification();
|
this.clearVisibleNotification();
|
||||||
this.coreErrorHandler.reset();
|
this.coreErrorHandler.reset();
|
||||||
|
const dryRun = this.verifyProgress === 'dry-run';
|
||||||
|
|
||||||
const options = await this.options(params?.exportBinaries);
|
const options = await this.options(params?.exportBinaries);
|
||||||
if (!options) {
|
if (!options) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dryRun) {
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
await this.doWithProgress({
|
await this.doWithProgress({
|
||||||
progressText: nls.localize(
|
progressText: nls.localize(
|
||||||
'arduino/sketch/compile',
|
'arduino/sketch/compile',
|
||||||
|
@@ -17,6 +17,7 @@ import {
|
|||||||
} from '../../../common/protocol/ide-updater';
|
} from '../../../common/protocol/ide-updater';
|
||||||
import { LocalStorageService } from '@theia/core/lib/browser';
|
import { LocalStorageService } from '@theia/core/lib/browser';
|
||||||
import { WindowService } from '@theia/core/lib/browser/window/window-service';
|
import { WindowService } from '@theia/core/lib/browser/window/window-service';
|
||||||
|
import { sanitize } from 'dompurify';
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class IDEUpdaterDialogProps extends DialogProps {}
|
export class IDEUpdaterDialogProps extends DialogProps {}
|
||||||
@@ -165,6 +166,51 @@ export class IDEUpdaterDialog extends ReactDialog<UpdateInfo | undefined> {
|
|||||||
goToDownloadPageButton.focus();
|
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 {
|
private openDownloadPage(): void {
|
||||||
this.openExternal('https://www.arduino.cc/en/software');
|
this.openExternal('https://www.arduino.cc/en/software');
|
||||||
this.close();
|
this.close();
|
||||||
@@ -187,6 +233,7 @@ export class IDEUpdaterDialog extends ReactDialog<UpdateInfo | undefined> {
|
|||||||
downloadStarted: true,
|
downloadStarted: true,
|
||||||
});
|
});
|
||||||
this.clearButtons();
|
this.clearButtons();
|
||||||
|
this.appendDonateFooter();
|
||||||
this.updater.downloadUpdate();
|
this.updater.downloadUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
@@ -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 |
@@ -34,6 +34,37 @@
|
|||||||
min-width: 0;
|
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 {
|
.ide-updater-dialog .changelog {
|
||||||
color: var(--theia-editor-foreground);
|
color: var(--theia-editor-foreground);
|
||||||
background-color: var(--theia-editor-background);
|
background-color: var(--theia-editor-background);
|
||||||
@@ -109,6 +140,7 @@
|
|||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
padding-bottom: 20px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ide-updater-dialog-container .skip-version-button {
|
#ide-updater-dialog-container .skip-version-button {
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
@import "./settings-dialog.css";
|
@import "./settings-dialog.css";
|
||||||
@import "./firmware-uploader-dialog.css";
|
@import "./firmware-uploader-dialog.css";
|
||||||
@import "./ide-updater-dialog.css";
|
@import "./ide-updater-dialog.css";
|
||||||
|
@import "./version-welcome-dialog.css";
|
||||||
@import "./certificate-uploader-dialog.css";
|
@import "./certificate-uploader-dialog.css";
|
||||||
@import "./user-fields-dialog.css";
|
@import "./user-fields-dialog.css";
|
||||||
@import "./debug.css";
|
@import "./debug.css";
|
||||||
|
@@ -0,0 +1,7 @@
|
|||||||
|
#version-welcome-dialog-container > .dialogBlock {
|
||||||
|
width: 546px;
|
||||||
|
|
||||||
|
.bold {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
@@ -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;
|
||||||
|
}
|
@@ -67,7 +67,10 @@ export interface BoardsService
|
|||||||
skipPostInstall?: boolean;
|
skipPostInstall?: boolean;
|
||||||
}): Promise<void>;
|
}): Promise<void>;
|
||||||
getDetectedPorts(): Promise<DetectedPorts>;
|
getDetectedPorts(): Promise<DetectedPorts>;
|
||||||
getBoardDetails(options: { fqbn: string }): Promise<BoardDetails | undefined>;
|
getBoardDetails(options: {
|
||||||
|
fqbn: string;
|
||||||
|
forceRefresh?: boolean;
|
||||||
|
}): Promise<BoardDetails | undefined>;
|
||||||
getBoardPackage(options: {
|
getBoardPackage(options: {
|
||||||
id: string /* TODO: change to PlatformIdentifier type? */;
|
id: string /* TODO: change to PlatformIdentifier type? */;
|
||||||
}): Promise<BoardsPackage | undefined>;
|
}): Promise<BoardsPackage | undefined>;
|
||||||
|
@@ -71,3 +71,4 @@ export interface IDEUpdaterClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const SKIP_IDE_VERSION = 'skipIDEVersion';
|
export const SKIP_IDE_VERSION = 'skipIDEVersion';
|
||||||
|
export const LAST_USED_IDE_VERSION = 'lastUsedIDEVersion';
|
||||||
|
@@ -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.
|
* 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.
|
* 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.
|
* 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.
|
* 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:
|
* 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.
|
* https://github.com/arduino/arduino-cli/issues/1762.
|
||||||
*/
|
*/
|
||||||
tempBuildPath(sketch: SketchRef): Promise<string[]>;
|
getBuildPath(sketch: SketchRef): Promise<string[]>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SketchRef {
|
export interface SketchRef {
|
||||||
|
@@ -521,6 +521,8 @@ export class ElectronMainApplication extends TheiaElectronMainApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override async startBackend(): Promise<number> {
|
protected override async startBackend(): Promise<number> {
|
||||||
|
// FIXME: temporary test to check improvements on low powered machines.
|
||||||
|
process.env.IS_LIGHT_VERSION = 'true';
|
||||||
// Check if we should run everything as one process.
|
// Check if we should run everything as one process.
|
||||||
const noBackendFork = process.argv.indexOf('--no-cluster') !== -1;
|
const noBackendFork = process.argv.indexOf('--no-cluster') !== -1;
|
||||||
// We cannot use the `process.cwd()` as the application project path (the location of the `package.json` in other words)
|
// We cannot use the `process.cwd()` as the application project path (the location of the `package.json` in other words)
|
||||||
|
@@ -75,12 +75,7 @@ import {
|
|||||||
} from '../common/protocol';
|
} from '../common/protocol';
|
||||||
import { BackendApplication } from './theia/core/backend-application';
|
import { BackendApplication } from './theia/core/backend-application';
|
||||||
import { BoardDiscovery } from './board-discovery';
|
import { BoardDiscovery } from './board-discovery';
|
||||||
import { AuthenticationServiceImpl } from './auth/authentication-service-impl';
|
|
||||||
import {
|
|
||||||
AuthenticationService,
|
|
||||||
AuthenticationServiceClient,
|
|
||||||
AuthenticationServicePath,
|
|
||||||
} from '../common/protocol/authentication-service';
|
|
||||||
import { ArduinoFirmwareUploaderImpl } from './arduino-firmware-uploader-impl';
|
import { ArduinoFirmwareUploaderImpl } from './arduino-firmware-uploader-impl';
|
||||||
import { PlotterBackendContribution } from './plotter/plotter-backend-contribution';
|
import { PlotterBackendContribution } from './plotter/plotter-backend-contribution';
|
||||||
import { ArduinoLocalizationContribution } from './i18n/arduino-localization-contribution';
|
import { ArduinoLocalizationContribution } from './i18n/arduino-localization-contribution';
|
||||||
@@ -116,12 +111,16 @@ import { MessagingContribution } from './theia/core/messaging-contribution';
|
|||||||
import { MessagingService } from '@theia/core/lib/node/messaging/messaging-service';
|
import { MessagingService } from '@theia/core/lib/node/messaging/messaging-service';
|
||||||
import { HostedPluginReader } from './theia/plugin-ext/plugin-reader';
|
import { HostedPluginReader } from './theia/plugin-ext/plugin-reader';
|
||||||
import { HostedPluginReader as TheiaHostedPluginReader } from '@theia/plugin-ext/lib/hosted/node/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 {
|
import {
|
||||||
LocalDirectoryPluginDeployerResolverWithFallback,
|
LocalDirectoryPluginDeployerResolverWithFallback,
|
||||||
PluginDeployer_GH_12064,
|
PluginDeployer_GH_12064,
|
||||||
} from './theia/plugin-ext/plugin-deployer';
|
} from './theia/plugin-ext/plugin-deployer';
|
||||||
import { SettingsReader } from './settings-reader';
|
import { SettingsReader } from './settings-reader';
|
||||||
|
import { VsCodePluginScanner } from './theia/plugin-ext-vscode/scanner-vscode';
|
||||||
|
|
||||||
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
||||||
bind(BackendApplication).toSelf().inSingletonScope();
|
bind(BackendApplication).toSelf().inSingletonScope();
|
||||||
@@ -350,25 +349,25 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
].forEach((name) => bindChildLogger(bind, name));
|
].forEach((name) => bindChildLogger(bind, name));
|
||||||
|
|
||||||
// Cloud sketchbook bindings
|
// Cloud sketchbook bindings
|
||||||
bind(AuthenticationServiceImpl).toSelf().inSingletonScope();
|
// bind(AuthenticationServiceImpl).toSelf().inSingletonScope();
|
||||||
bind(AuthenticationService).toService(AuthenticationServiceImpl);
|
// bind(AuthenticationService).toService(AuthenticationServiceImpl);
|
||||||
bind(BackendApplicationContribution).toService(AuthenticationServiceImpl);
|
// bind(BackendApplicationContribution).toService(AuthenticationServiceImpl);
|
||||||
bind(ConnectionHandler)
|
// bind(ConnectionHandler)
|
||||||
.toDynamicValue(
|
// .toDynamicValue(
|
||||||
(context) =>
|
// (context) =>
|
||||||
new JsonRpcConnectionHandler<AuthenticationServiceClient>(
|
// new JsonRpcConnectionHandler<AuthenticationServiceClient>(
|
||||||
AuthenticationServicePath,
|
// AuthenticationServicePath,
|
||||||
(client) => {
|
// (client) => {
|
||||||
const server = context.container.get<AuthenticationServiceImpl>(
|
// const server = context.container.get<AuthenticationServiceImpl>(
|
||||||
AuthenticationServiceImpl
|
// AuthenticationServiceImpl
|
||||||
);
|
// );
|
||||||
server.setClient(client);
|
// server.setClient(client);
|
||||||
client.onDidCloseConnection(() => server.disposeClient(client));
|
// client.onDidCloseConnection(() => server.disposeClient(client));
|
||||||
return server;
|
// return server;
|
||||||
}
|
// }
|
||||||
)
|
// )
|
||||||
)
|
// )
|
||||||
.inSingletonScope();
|
// .inSingletonScope();
|
||||||
|
|
||||||
bind(PlotterBackendContribution).toSelf().inSingletonScope();
|
bind(PlotterBackendContribution).toSelf().inSingletonScope();
|
||||||
bind(BackendApplicationContribution).toService(PlotterBackendContribution);
|
bind(BackendApplicationContribution).toService(PlotterBackendContribution);
|
||||||
@@ -410,6 +409,11 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
rebind(PluginDeployer).to(PluginDeployer_GH_12064).inSingletonScope();
|
rebind(PluginDeployer).to(PluginDeployer_GH_12064).inSingletonScope();
|
||||||
|
|
||||||
bind(SettingsReader).toSelf().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 {
|
function bindChildLogger(bind: interfaces.Bind, name: string): void {
|
||||||
|
@@ -170,6 +170,10 @@ export class BoardDiscovery
|
|||||||
}
|
}
|
||||||
|
|
||||||
async start(): Promise<void> {
|
async start(): Promise<void> {
|
||||||
|
if (process.env.IS_LIGHT_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.logger.info('start');
|
this.logger.info('start');
|
||||||
if (this.stopping) {
|
if (this.stopping) {
|
||||||
this.logger.info('start is stopping wait');
|
this.logger.info('start is stopping wait');
|
||||||
|
@@ -73,7 +73,11 @@ export class BoardsServiceImpl
|
|||||||
|
|
||||||
async getBoardDetails(options: {
|
async getBoardDetails(options: {
|
||||||
fqbn: string;
|
fqbn: string;
|
||||||
|
forceRefresh?: boolean;
|
||||||
}): Promise<BoardDetails | undefined> {
|
}): Promise<BoardDetails | undefined> {
|
||||||
|
if (options.forceRefresh) {
|
||||||
|
await this.refresh();
|
||||||
|
}
|
||||||
const coreClient = await this.coreClient;
|
const coreClient = await this.coreClient;
|
||||||
const { client, instance } = coreClient;
|
const { client, instance } = coreClient;
|
||||||
const { fqbn } = options;
|
const { fqbn } = options;
|
||||||
|
@@ -6,16 +6,16 @@
|
|||||||
|
|
||||||
import * as grpc from "@grpc/grpc-js";
|
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 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_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_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_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_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_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_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> {
|
interface IArduinoCoreServiceService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
|
||||||
create: IArduinoCoreServiceService_ICreate;
|
create: IArduinoCoreServiceService_ICreate;
|
||||||
|
@@ -19,16 +19,16 @@
|
|||||||
//
|
//
|
||||||
'use strict';
|
'use strict';
|
||||||
var cc_arduino_cli_commands_v1_commands_pb = require('../../../../../cc/arduino/cli/commands/v1/commands_pb.js');
|
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_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_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_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_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_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_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) {
|
function serialize_cc_arduino_cli_commands_v1_ArchiveSketchRequest(arg) {
|
||||||
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.ArchiveSketchRequest)) {
|
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.ArchiveSketchRequest)) {
|
||||||
@@ -1109,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'] = {
|
var ArduinoCoreServiceService = exports['cc.arduino.cli.commands.v1.ArduinoCoreService'] = {
|
||||||
// Create a new Arduino Core instance
|
// Create a new Arduino Core instance.
|
||||||
create: {
|
create: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Create',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Create',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1124,7 +1124,7 @@ create: {
|
|||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CreateResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CreateResponse,
|
||||||
},
|
},
|
||||||
// Initializes an existing Arduino Core instance by loading platforms and
|
// Initializes an existing Arduino Core instance by loading platforms and
|
||||||
// libraries
|
// libraries.
|
||||||
init: {
|
init: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Init',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Init',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1136,7 +1136,7 @@ init: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_InitResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_InitResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
destroy: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Destroy',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Destroy',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1148,7 +1148,7 @@ destroy: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_DestroyResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_DestroyResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
updateIndex: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateIndex',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateIndex',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1160,7 +1160,7 @@ updateIndex: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
|
||||||
},
|
},
|
||||||
// Update libraries index
|
// Update libraries index.
|
||||||
updateLibrariesIndex: {
|
updateLibrariesIndex: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateLibrariesIndex',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateLibrariesIndex',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1184,7 +1184,7 @@ version: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_VersionResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_VersionResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_VersionResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_VersionResponse,
|
||||||
},
|
},
|
||||||
// Create a new Sketch
|
// Create a new Sketch.
|
||||||
newSketch: {
|
newSketch: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/NewSketch',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/NewSketch',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1196,7 +1196,7 @@ newSketch: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_NewSketchResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_NewSketchResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
loadSketch: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/LoadSketch',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/LoadSketch',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1208,7 +1208,7 @@ loadSketch: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_LoadSketchResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_LoadSketchResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
archiveSketch: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ArchiveSketch',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ArchiveSketch',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1234,10 +1234,7 @@ setSketchDefaults: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_SetSketchDefaultsResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_SetSketchDefaultsResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
boardDetails: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/BoardDetails',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/BoardDetails',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1469,7 +1466,7 @@ libraryUpgrade: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryUpgradeResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryUpgradeResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
zipLibraryInstall: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ZipLibraryInstall',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ZipLibraryInstall',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1481,7 +1478,7 @@ zipLibraryInstall: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
gitLibraryInstall: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/GitLibraryInstall',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/GitLibraryInstall',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1554,7 +1551,7 @@ libraryList: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryListResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryListResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
monitor: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Monitor',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Monitor',
|
||||||
requestStream: true,
|
requestStream: true,
|
||||||
@@ -1566,7 +1563,7 @@ monitor: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_MonitorResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_MonitorResponse,
|
||||||
responseDeserialize: deserialize_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: {
|
enumerateMonitorPortSettings: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/EnumerateMonitorPortSettings',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/EnumerateMonitorPortSettings',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1638,7 +1635,7 @@ cleanDownloadCacheDirectory: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
|
||||||
},
|
},
|
||||||
// Writes the settings currently stored in memory in a YAML file
|
// Writes the settings currently stored in memory in a YAML file.
|
||||||
configurationSave: {
|
configurationSave: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationSave',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationSave',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1650,7 +1647,7 @@ configurationSave: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
|
||||||
},
|
},
|
||||||
// Read the settings from a YAML file
|
// Read the settings from a YAML file.
|
||||||
configurationOpen: {
|
configurationOpen: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationOpen',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationOpen',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1662,7 +1659,8 @@ configurationOpen: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
|
||||||
},
|
},
|
||||||
configurationGet: {
|
// Get the current configuration.
|
||||||
|
configurationGet: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationGet',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationGet',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
responseStream: false,
|
responseStream: false,
|
||||||
@@ -1673,7 +1671,7 @@ configurationOpen: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
|
||||||
},
|
},
|
||||||
// Enumerate all the keys/values pairs available in the configuration
|
// Enumerate all the keys/values pairs available in the configuration.
|
||||||
settingsEnumerate: {
|
settingsEnumerate: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsEnumerate',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsEnumerate',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1685,7 +1683,7 @@ settingsEnumerate: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
|
||||||
},
|
},
|
||||||
// Get a single configuration value
|
// Get a single configuration value.
|
||||||
settingsGetValue: {
|
settingsGetValue: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsGetValue',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsGetValue',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
@@ -1697,7 +1695,7 @@ settingsGetValue: {
|
|||||||
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
|
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
|
||||||
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
|
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
|
||||||
},
|
},
|
||||||
// Set a single configuration value
|
// Set a single configuration value.
|
||||||
settingsSetValue: {
|
settingsSetValue: {
|
||||||
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsSetValue',
|
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsSetValue',
|
||||||
requestStream: false,
|
requestStream: false,
|
||||||
|
@@ -5,16 +5,16 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
|
|
||||||
import * as jspb from "google-protobuf";
|
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_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_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_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_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_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_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 {
|
export class CreateRequest extends jspb.Message {
|
||||||
|
|
||||||
|
@@ -21,26 +21,26 @@ var global = (function() {
|
|||||||
return Function('return this')();
|
return Function('return this')();
|
||||||
}.call(null));
|
}.call(null));
|
||||||
|
|
||||||
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
|
|
||||||
goog.object.extend(proto, google_rpc_status_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_board_pb = require('../../../../../cc/arduino/cli/commands/v1/board_pb.js');
|
var cc_arduino_cli_commands_v1_board_pb = require('../../../../../cc/arduino/cli/commands/v1/board_pb.js');
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_board_pb);
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_board_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_compile_pb = require('../../../../../cc/arduino/cli/commands/v1/compile_pb.js');
|
var cc_arduino_cli_commands_v1_compile_pb = require('../../../../../cc/arduino/cli/commands/v1/compile_pb.js');
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_compile_pb);
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_compile_pb);
|
||||||
var cc_arduino_cli_commands_v1_core_pb = require('../../../../../cc/arduino/cli/commands/v1/core_pb.js');
|
var cc_arduino_cli_commands_v1_core_pb = require('../../../../../cc/arduino/cli/commands/v1/core_pb.js');
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_core_pb);
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_core_pb);
|
||||||
var cc_arduino_cli_commands_v1_debug_pb = require('../../../../../cc/arduino/cli/commands/v1/debug_pb.js');
|
var cc_arduino_cli_commands_v1_debug_pb = require('../../../../../cc/arduino/cli/commands/v1/debug_pb.js');
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_debug_pb);
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_debug_pb);
|
||||||
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
|
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_monitor_pb);
|
|
||||||
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
|
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_upload_pb);
|
|
||||||
var cc_arduino_cli_commands_v1_lib_pb = require('../../../../../cc/arduino/cli/commands/v1/lib_pb.js');
|
var cc_arduino_cli_commands_v1_lib_pb = require('../../../../../cc/arduino/cli/commands/v1/lib_pb.js');
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_lib_pb);
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_lib_pb);
|
||||||
|
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
|
||||||
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_monitor_pb);
|
||||||
var cc_arduino_cli_commands_v1_settings_pb = require('../../../../../cc/arduino/cli/commands/v1/settings_pb.js');
|
var cc_arduino_cli_commands_v1_settings_pb = require('../../../../../cc/arduino/cli/commands/v1/settings_pb.js');
|
||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_settings_pb);
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_settings_pb);
|
||||||
|
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
|
||||||
|
goog.object.extend(proto, cc_arduino_cli_commands_v1_upload_pb);
|
||||||
|
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
|
||||||
|
goog.object.extend(proto, google_rpc_status_pb);
|
||||||
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.ArchiveSketchRequest', null, global);
|
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.ArchiveSketchRequest', null, global);
|
||||||
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.ArchiveSketchResponse', null, global);
|
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.ArchiveSketchResponse', null, global);
|
||||||
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.CheckForArduinoCLIUpdatesRequest', null, global);
|
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.CheckForArduinoCLIUpdatesRequest', null, global);
|
||||||
|
@@ -471,6 +471,11 @@ export class Sketch extends jspb.Message {
|
|||||||
getDefaultProgrammer(): string;
|
getDefaultProgrammer(): string;
|
||||||
setDefaultProgrammer(value: string): Sketch;
|
setDefaultProgrammer(value: string): Sketch;
|
||||||
|
|
||||||
|
hasDefaultPortConfig(): boolean;
|
||||||
|
clearDefaultPortConfig(): void;
|
||||||
|
getDefaultPortConfig(): MonitorPortConfiguration | undefined;
|
||||||
|
setDefaultPortConfig(value?: MonitorPortConfiguration): Sketch;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): Sketch.AsObject;
|
toObject(includeInstance?: boolean): Sketch.AsObject;
|
||||||
static toObject(includeInstance: boolean, msg: Sketch): Sketch.AsObject;
|
static toObject(includeInstance: boolean, msg: Sketch): Sketch.AsObject;
|
||||||
@@ -494,6 +499,52 @@ export namespace Sketch {
|
|||||||
profilesList: Array<SketchProfile.AsObject>,
|
profilesList: Array<SketchProfile.AsObject>,
|
||||||
defaultProfile?: SketchProfile.AsObject,
|
defaultProfile?: SketchProfile.AsObject,
|
||||||
defaultProgrammer: string,
|
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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -504,6 +555,15 @@ export class SketchProfile extends jspb.Message {
|
|||||||
setFqbn(value: string): SketchProfile;
|
setFqbn(value: string): SketchProfile;
|
||||||
getProgrammer(): string;
|
getProgrammer(): string;
|
||||||
setProgrammer(value: string): SketchProfile;
|
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;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): SketchProfile.AsObject;
|
toObject(includeInstance?: boolean): SketchProfile.AsObject;
|
||||||
@@ -520,5 +580,8 @@ export namespace SketchProfile {
|
|||||||
name: string,
|
name: string,
|
||||||
fqbn: string,
|
fqbn: string,
|
||||||
programmer: string,
|
programmer: string,
|
||||||
|
port: string,
|
||||||
|
portConfig?: MonitorPortConfiguration.AsObject,
|
||||||
|
protocol: string,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -31,6 +31,8 @@ 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.InstalledPlatformReference', null, global);
|
||||||
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.Instance', 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.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.Platform', null, global);
|
||||||
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.PlatformMetadata', 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.PlatformRelease', null, global);
|
||||||
@@ -375,6 +377,48 @@ if (goog.DEBUG && !COMPILED) {
|
|||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.Sketch.displayName = 'proto.cc.arduino.cli.commands.v1.Sketch';
|
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.
|
* Generated by JsPbCodeGenerator.
|
||||||
* @param {Array=} opt_data Optional initial data array, typically from a
|
* @param {Array=} opt_data Optional initial data array, typically from a
|
||||||
@@ -3553,7 +3597,8 @@ proto.cc.arduino.cli.commands.v1.Sketch.toObject = function(includeInstance, msg
|
|||||||
profilesList: jspb.Message.toObjectList(msg.getProfilesList(),
|
profilesList: jspb.Message.toObjectList(msg.getProfilesList(),
|
||||||
proto.cc.arduino.cli.commands.v1.SketchProfile.toObject, includeInstance),
|
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, "")
|
defaultProgrammer: jspb.Message.getFieldWithDefault(msg, 11, ""),
|
||||||
|
defaultPortConfig: (f = msg.getDefaultPortConfig()) && proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(includeInstance, f)
|
||||||
};
|
};
|
||||||
|
|
||||||
if (includeInstance) {
|
if (includeInstance) {
|
||||||
@@ -3636,6 +3681,11 @@ proto.cc.arduino.cli.commands.v1.Sketch.deserializeBinaryFromReader = function(m
|
|||||||
var value = /** @type {string} */ (reader.readString());
|
var value = /** @type {string} */ (reader.readString());
|
||||||
msg.setDefaultProgrammer(value);
|
msg.setDefaultProgrammer(value);
|
||||||
break;
|
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:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@@ -3744,6 +3794,14 @@ proto.cc.arduino.cli.commands.v1.Sketch.serializeBinaryToWriter = function(messa
|
|||||||
f
|
f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
f = message.getDefaultPortConfig();
|
||||||
|
if (f != null) {
|
||||||
|
writer.writeMessage(
|
||||||
|
12,
|
||||||
|
f,
|
||||||
|
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -4041,6 +4099,363 @@ proto.cc.arduino.cli.commands.v1.Sketch.prototype.setDefaultProgrammer = functio
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4075,7 +4490,10 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.toObject = function(includeInstan
|
|||||||
var f, obj = {
|
var f, obj = {
|
||||||
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||||
fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||||
programmer: jspb.Message.getFieldWithDefault(msg, 3, "")
|
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) {
|
if (includeInstance) {
|
||||||
@@ -4124,6 +4542,19 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.deserializeBinaryFromReader = fun
|
|||||||
var value = /** @type {string} */ (reader.readString());
|
var value = /** @type {string} */ (reader.readString());
|
||||||
msg.setProgrammer(value);
|
msg.setProgrammer(value);
|
||||||
break;
|
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:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@@ -4174,6 +4605,28 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.serializeBinaryToWriter = functio
|
|||||||
f
|
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
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -4231,4 +4684,77 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.setProgrammer = functio
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
goog.object.extend(exports, proto.cc.arduino.cli.commands.v1);
|
||||||
|
@@ -119,6 +119,10 @@ export class IsDebugSupportedRequest extends jspb.Message {
|
|||||||
setInterpreter(value: string): IsDebugSupportedRequest;
|
setInterpreter(value: string): IsDebugSupportedRequest;
|
||||||
getProgrammer(): string;
|
getProgrammer(): string;
|
||||||
setProgrammer(value: string): IsDebugSupportedRequest;
|
setProgrammer(value: string): IsDebugSupportedRequest;
|
||||||
|
clearDebugPropertiesList(): void;
|
||||||
|
getDebugPropertiesList(): Array<string>;
|
||||||
|
setDebugPropertiesList(value: Array<string>): IsDebugSupportedRequest;
|
||||||
|
addDebugProperties(value: string, index?: number): string;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): IsDebugSupportedRequest.AsObject;
|
toObject(includeInstance?: boolean): IsDebugSupportedRequest.AsObject;
|
||||||
@@ -137,6 +141,7 @@ export namespace IsDebugSupportedRequest {
|
|||||||
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
|
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
|
||||||
interpreter: string,
|
interpreter: string,
|
||||||
programmer: string,
|
programmer: string,
|
||||||
|
debugPropertiesList: Array<string>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,6 +189,10 @@ export class GetDebugConfigRequest extends jspb.Message {
|
|||||||
setImportDir(value: string): GetDebugConfigRequest;
|
setImportDir(value: string): GetDebugConfigRequest;
|
||||||
getProgrammer(): string;
|
getProgrammer(): string;
|
||||||
setProgrammer(value: string): GetDebugConfigRequest;
|
setProgrammer(value: string): GetDebugConfigRequest;
|
||||||
|
clearDebugPropertiesList(): void;
|
||||||
|
getDebugPropertiesList(): Array<string>;
|
||||||
|
setDebugPropertiesList(value: Array<string>): GetDebugConfigRequest;
|
||||||
|
addDebugProperties(value: string, index?: number): string;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): GetDebugConfigRequest.AsObject;
|
toObject(includeInstance?: boolean): GetDebugConfigRequest.AsObject;
|
||||||
@@ -204,6 +213,7 @@ export namespace GetDebugConfigRequest {
|
|||||||
interpreter: string,
|
interpreter: string,
|
||||||
importDir: string,
|
importDir: string,
|
||||||
programmer: string,
|
programmer: string,
|
||||||
|
debugPropertiesList: Array<string>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -111,7 +111,7 @@ if (goog.DEBUG && !COMPILED) {
|
|||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest = function(opt_data) {
|
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest = 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.IsDebugSupportedRequest.repeatedFields_, null);
|
||||||
};
|
};
|
||||||
goog.inherits(proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest, jspb.Message);
|
goog.inherits(proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest, jspb.Message);
|
||||||
if (goog.DEBUG && !COMPILED) {
|
if (goog.DEBUG && !COMPILED) {
|
||||||
@@ -153,7 +153,7 @@ if (goog.DEBUG && !COMPILED) {
|
|||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest = function(opt_data) {
|
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);
|
goog.inherits(proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest, jspb.Message);
|
||||||
if (goog.DEBUG && !COMPILED) {
|
if (goog.DEBUG && !COMPILED) {
|
||||||
@@ -841,6 +841,13 @@ proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.hasResult = function()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of repeated fields within this message type.
|
||||||
|
* @private {!Array<number>}
|
||||||
|
* @const
|
||||||
|
*/
|
||||||
|
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.repeatedFields_ = [6];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (jspb.Message.GENERATE_TO_OBJECT) {
|
if (jspb.Message.GENERATE_TO_OBJECT) {
|
||||||
@@ -876,7 +883,8 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.toObject = function(inc
|
|||||||
fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||||
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
|
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
|
||||||
interpreter: jspb.Message.getFieldWithDefault(msg, 4, ""),
|
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) {
|
if (includeInstance) {
|
||||||
@@ -935,6 +943,10 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.deserializeBinaryFromRe
|
|||||||
var value = /** @type {string} */ (reader.readString());
|
var value = /** @type {string} */ (reader.readString());
|
||||||
msg.setProgrammer(value);
|
msg.setProgrammer(value);
|
||||||
break;
|
break;
|
||||||
|
case 6:
|
||||||
|
var value = /** @type {string} */ (reader.readString());
|
||||||
|
msg.addDebugProperties(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@@ -1001,6 +1013,13 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.serializeBinaryToWriter
|
|||||||
f
|
f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
f = message.getDebugPropertiesList();
|
||||||
|
if (f.length > 0) {
|
||||||
|
writer.writeRepeatedString(
|
||||||
|
6,
|
||||||
|
f
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1132,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([]);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1293,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) {
|
if (jspb.Message.GENERATE_TO_OBJECT) {
|
||||||
@@ -1330,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),
|
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
|
||||||
interpreter: jspb.Message.getFieldWithDefault(msg, 5, ""),
|
interpreter: jspb.Message.getFieldWithDefault(msg, 5, ""),
|
||||||
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
|
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) {
|
if (includeInstance) {
|
||||||
@@ -1397,6 +1461,10 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.deserializeBinaryFromRead
|
|||||||
var value = /** @type {string} */ (reader.readString());
|
var value = /** @type {string} */ (reader.readString());
|
||||||
msg.setProgrammer(value);
|
msg.setProgrammer(value);
|
||||||
break;
|
break;
|
||||||
|
case 10:
|
||||||
|
var value = /** @type {string} */ (reader.readString());
|
||||||
|
msg.addDebugProperties(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@@ -1477,6 +1545,13 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.serializeBinaryToWriter =
|
|||||||
f
|
f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
f = message.getDebugPropertiesList();
|
||||||
|
if (f.length > 0) {
|
||||||
|
writer.writeRepeatedString(
|
||||||
|
10,
|
||||||
|
f
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1644,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([]);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -24,8 +24,8 @@ export class MonitorRequest extends jspb.Message {
|
|||||||
|
|
||||||
hasUpdatedConfiguration(): boolean;
|
hasUpdatedConfiguration(): boolean;
|
||||||
clearUpdatedConfiguration(): void;
|
clearUpdatedConfiguration(): void;
|
||||||
getUpdatedConfiguration(): MonitorPortConfiguration | undefined;
|
getUpdatedConfiguration(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
|
||||||
setUpdatedConfiguration(value?: MonitorPortConfiguration): MonitorRequest;
|
setUpdatedConfiguration(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorRequest;
|
||||||
|
|
||||||
hasClose(): boolean;
|
hasClose(): boolean;
|
||||||
clearClose(): void;
|
clearClose(): void;
|
||||||
@@ -48,7 +48,7 @@ export namespace MonitorRequest {
|
|||||||
export type AsObject = {
|
export type AsObject = {
|
||||||
openRequest?: MonitorPortOpenRequest.AsObject,
|
openRequest?: MonitorPortOpenRequest.AsObject,
|
||||||
txData: Uint8Array | string,
|
txData: Uint8Array | string,
|
||||||
updatedConfiguration?: MonitorPortConfiguration.AsObject,
|
updatedConfiguration?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
|
||||||
close: boolean,
|
close: boolean,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,8 +78,8 @@ export class MonitorPortOpenRequest extends jspb.Message {
|
|||||||
|
|
||||||
hasPortConfiguration(): boolean;
|
hasPortConfiguration(): boolean;
|
||||||
clearPortConfiguration(): void;
|
clearPortConfiguration(): void;
|
||||||
getPortConfiguration(): MonitorPortConfiguration | undefined;
|
getPortConfiguration(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
|
||||||
setPortConfiguration(value?: MonitorPortConfiguration): MonitorPortOpenRequest;
|
setPortConfiguration(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorPortOpenRequest;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): MonitorPortOpenRequest.AsObject;
|
toObject(includeInstance?: boolean): MonitorPortOpenRequest.AsObject;
|
||||||
@@ -96,29 +96,7 @@ export namespace MonitorPortOpenRequest {
|
|||||||
instance?: cc_arduino_cli_commands_v1_common_pb.Instance.AsObject,
|
instance?: cc_arduino_cli_commands_v1_common_pb.Instance.AsObject,
|
||||||
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
|
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
|
||||||
fqbn: string,
|
fqbn: string,
|
||||||
portConfiguration?: MonitorPortConfiguration.AsObject,
|
portConfiguration?: cc_arduino_cli_commands_v1_common_pb.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>,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,8 +116,8 @@ export class MonitorResponse extends jspb.Message {
|
|||||||
|
|
||||||
hasAppliedSettings(): boolean;
|
hasAppliedSettings(): boolean;
|
||||||
clearAppliedSettings(): void;
|
clearAppliedSettings(): void;
|
||||||
getAppliedSettings(): MonitorPortConfiguration | undefined;
|
getAppliedSettings(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
|
||||||
setAppliedSettings(value?: MonitorPortConfiguration): MonitorResponse;
|
setAppliedSettings(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorResponse;
|
||||||
|
|
||||||
hasSuccess(): boolean;
|
hasSuccess(): boolean;
|
||||||
clearSuccess(): void;
|
clearSuccess(): void;
|
||||||
@@ -162,7 +140,7 @@ export namespace MonitorResponse {
|
|||||||
export type AsObject = {
|
export type AsObject = {
|
||||||
error: string,
|
error: string,
|
||||||
rxData: Uint8Array | string,
|
rxData: Uint8Array | string,
|
||||||
appliedSettings?: MonitorPortConfiguration.AsObject,
|
appliedSettings?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
|
||||||
success: boolean,
|
success: boolean,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,29 +154,6 @@ export namespace MonitorResponse {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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 class EnumerateMonitorPortSettingsRequest extends jspb.Message {
|
export class EnumerateMonitorPortSettingsRequest extends jspb.Message {
|
||||||
|
|
||||||
hasInstance(): boolean;
|
hasInstance(): boolean;
|
||||||
|
@@ -27,9 +27,7 @@ var cc_arduino_cli_commands_v1_port_pb = require('../../../../../cc/arduino/cli/
|
|||||||
goog.object.extend(proto, cc_arduino_cli_commands_v1_port_pb);
|
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.EnumerateMonitorPortSettingsRequest', null, global);
|
||||||
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.EnumerateMonitorPortSettingsResponse', 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.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.MonitorPortSettingDescriptor', null, global);
|
||||||
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorRequest', 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.MonitorRequest.MessageCase', null, global);
|
||||||
@@ -77,27 +75,6 @@ if (goog.DEBUG && !COMPILED) {
|
|||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest';
|
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.
|
* Generated by JsPbCodeGenerator.
|
||||||
* @param {Array=} opt_data Optional initial data array, typically from a
|
* @param {Array=} opt_data Optional initial data array, typically from a
|
||||||
@@ -119,27 +96,6 @@ if (goog.DEBUG && !COMPILED) {
|
|||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.MonitorResponse.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorResponse';
|
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.
|
* Generated by JsPbCodeGenerator.
|
||||||
* @param {Array=} opt_data Optional initial data array, typically from a
|
* @param {Array=} opt_data Optional initial data array, typically from a
|
||||||
@@ -265,7 +221,7 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.toObject = function(includeInsta
|
|||||||
var f, obj = {
|
var f, obj = {
|
||||||
openRequest: (f = msg.getOpenRequest()) && proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.toObject(includeInstance, f),
|
openRequest: (f = msg.getOpenRequest()) && proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.toObject(includeInstance, f),
|
||||||
txData: msg.getTxData_asB64(),
|
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)
|
close: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -313,8 +269,8 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.deserializeBinaryFromReader = fu
|
|||||||
msg.setTxData(value);
|
msg.setTxData(value);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
|
var value = new cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration;
|
||||||
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader);
|
reader.readMessage(value,cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.deserializeBinaryFromReader);
|
||||||
msg.setUpdatedConfiguration(value);
|
msg.setUpdatedConfiguration(value);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@@ -370,7 +326,7 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.serializeBinaryToWriter = functi
|
|||||||
writer.writeMessage(
|
writer.writeMessage(
|
||||||
3,
|
3,
|
||||||
f,
|
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));
|
f = /** @type {boolean} */ (jspb.Message.getField(message, 4));
|
||||||
@@ -486,7 +442,7 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.prototype.hasTxData = function()
|
|||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.MonitorRequest.prototype.getUpdatedConfiguration = function() {
|
proto.cc.arduino.cli.commands.v1.MonitorRequest.prototype.getUpdatedConfiguration = function() {
|
||||||
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
|
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));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -588,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),
|
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),
|
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
|
||||||
fqbn: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
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) {
|
if (includeInstance) {
|
||||||
@@ -640,8 +596,8 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.deserializeBinaryFromRea
|
|||||||
msg.setFqbn(value);
|
msg.setFqbn(value);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
|
var value = new cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration;
|
||||||
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader);
|
reader.readMessage(value,cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.deserializeBinaryFromReader);
|
||||||
msg.setPortConfiguration(value);
|
msg.setPortConfiguration(value);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -701,7 +657,7 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.serializeBinaryToWriter
|
|||||||
writer.writeMessage(
|
writer.writeMessage(
|
||||||
4,
|
4,
|
||||||
f,
|
f,
|
||||||
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter
|
cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.serializeBinaryToWriter
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -805,7 +761,7 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.prototype.setFqbn = func
|
|||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.prototype.getPortConfiguration = function() {
|
proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.prototype.getPortConfiguration = function() {
|
||||||
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
|
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,166 +793,6 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.prototype.hasPortConfigu
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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([]);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Oneof group definitions for this message. Each group defines the field
|
* Oneof group definitions for this message. Each group defines the field
|
||||||
* numbers belonging to that group. When of these fields' value is set, all
|
* numbers belonging to that group. When of these fields' value is set, all
|
||||||
@@ -1058,7 +854,7 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.toObject = function(includeInst
|
|||||||
var f, obj = {
|
var f, obj = {
|
||||||
error: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
error: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||||
rxData: msg.getRxData_asB64(),
|
rxData: msg.getRxData_asB64(),
|
||||||
appliedSettings: (f = msg.getAppliedSettings()) && proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(includeInstance, f),
|
appliedSettings: (f = msg.getAppliedSettings()) && cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.toObject(includeInstance, f),
|
||||||
success: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
|
success: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1105,8 +901,8 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.deserializeBinaryFromReader = f
|
|||||||
msg.setRxData(value);
|
msg.setRxData(value);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
|
var value = new cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration;
|
||||||
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader);
|
reader.readMessage(value,cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.deserializeBinaryFromReader);
|
||||||
msg.setAppliedSettings(value);
|
msg.setAppliedSettings(value);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@@ -1161,7 +957,7 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.serializeBinaryToWriter = funct
|
|||||||
writer.writeMessage(
|
writer.writeMessage(
|
||||||
3,
|
3,
|
||||||
f,
|
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));
|
f = /** @type {boolean} */ (jspb.Message.getField(message, 4));
|
||||||
@@ -1276,7 +1072,7 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.hasRxData = function(
|
|||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getAppliedSettings = function() {
|
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getAppliedSettings = function() {
|
||||||
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
|
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));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1346,166 +1142,6 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.hasSuccess = 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.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);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (jspb.Message.GENERATE_TO_OBJECT) {
|
if (jspb.Message.GENERATE_TO_OBJECT) {
|
||||||
/**
|
/**
|
||||||
* Creates an object representation of this proto.
|
* Creates an object representation of this proto.
|
||||||
|
@@ -38,6 +38,10 @@ export class UploadRequest extends jspb.Message {
|
|||||||
|
|
||||||
getUserFieldsMap(): jspb.Map<string, string>;
|
getUserFieldsMap(): jspb.Map<string, string>;
|
||||||
clearUserFieldsMap(): void;
|
clearUserFieldsMap(): void;
|
||||||
|
clearUploadPropertiesList(): void;
|
||||||
|
getUploadPropertiesList(): Array<string>;
|
||||||
|
setUploadPropertiesList(value: Array<string>): UploadRequest;
|
||||||
|
addUploadProperties(value: string, index?: number): string;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): UploadRequest.AsObject;
|
toObject(includeInstance?: boolean): UploadRequest.AsObject;
|
||||||
@@ -63,6 +67,7 @@ export namespace UploadRequest {
|
|||||||
dryRun: boolean,
|
dryRun: boolean,
|
||||||
|
|
||||||
userFieldsMap: Array<[string, string]>,
|
userFieldsMap: Array<[string, string]>,
|
||||||
|
uploadPropertiesList: Array<string>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,6 +190,10 @@ export class UploadUsingProgrammerRequest extends jspb.Message {
|
|||||||
|
|
||||||
getUserFieldsMap(): jspb.Map<string, string>;
|
getUserFieldsMap(): jspb.Map<string, string>;
|
||||||
clearUserFieldsMap(): void;
|
clearUserFieldsMap(): void;
|
||||||
|
clearUploadPropertiesList(): void;
|
||||||
|
getUploadPropertiesList(): Array<string>;
|
||||||
|
setUploadPropertiesList(value: Array<string>): UploadUsingProgrammerRequest;
|
||||||
|
addUploadProperties(value: string, index?: number): string;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): UploadUsingProgrammerRequest.AsObject;
|
toObject(includeInstance?: boolean): UploadUsingProgrammerRequest.AsObject;
|
||||||
@@ -210,6 +219,7 @@ export namespace UploadUsingProgrammerRequest {
|
|||||||
dryRun: boolean,
|
dryRun: boolean,
|
||||||
|
|
||||||
userFieldsMap: Array<[string, string]>,
|
userFieldsMap: Array<[string, string]>,
|
||||||
|
uploadPropertiesList: Array<string>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,6 +289,10 @@ export class BurnBootloaderRequest extends jspb.Message {
|
|||||||
|
|
||||||
getUserFieldsMap(): jspb.Map<string, string>;
|
getUserFieldsMap(): jspb.Map<string, string>;
|
||||||
clearUserFieldsMap(): void;
|
clearUserFieldsMap(): void;
|
||||||
|
clearUploadPropertiesList(): void;
|
||||||
|
getUploadPropertiesList(): Array<string>;
|
||||||
|
setUploadPropertiesList(value: Array<string>): BurnBootloaderRequest;
|
||||||
|
addUploadProperties(value: string, index?: number): string;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): BurnBootloaderRequest.AsObject;
|
toObject(includeInstance?: boolean): BurnBootloaderRequest.AsObject;
|
||||||
@@ -301,6 +315,7 @@ export namespace BurnBootloaderRequest {
|
|||||||
dryRun: boolean,
|
dryRun: boolean,
|
||||||
|
|
||||||
userFieldsMap: Array<[string, string]>,
|
userFieldsMap: Array<[string, string]>,
|
||||||
|
uploadPropertiesList: Array<string>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -52,7 +52,7 @@ goog.exportSymbol('proto.cc.arduino.cli.commands.v1.UserField', null, global);
|
|||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.UploadRequest = function(opt_data) {
|
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);
|
goog.inherits(proto.cc.arduino.cli.commands.v1.UploadRequest, jspb.Message);
|
||||||
if (goog.DEBUG && !COMPILED) {
|
if (goog.DEBUG && !COMPILED) {
|
||||||
@@ -136,7 +136,7 @@ if (goog.DEBUG && !COMPILED) {
|
|||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest = function(opt_data) {
|
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);
|
goog.inherits(proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest, jspb.Message);
|
||||||
if (goog.DEBUG && !COMPILED) {
|
if (goog.DEBUG && !COMPILED) {
|
||||||
@@ -178,7 +178,7 @@ if (goog.DEBUG && !COMPILED) {
|
|||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest = function(opt_data) {
|
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);
|
goog.inherits(proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest, jspb.Message);
|
||||||
if (goog.DEBUG && !COMPILED) {
|
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';
|
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) {
|
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, ""),
|
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
|
||||||
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
|
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
|
||||||
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
|
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) {
|
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, "", "");
|
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case 12:
|
||||||
|
var value = /** @type {string} */ (reader.readString());
|
||||||
|
msg.addUploadProperties(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@@ -546,6 +558,13 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.serializeBinaryToWriter = functio
|
|||||||
if (f && f.getLength() > 0) {
|
if (f && f.getLength() > 0) {
|
||||||
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
|
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;};
|
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
|
* 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) {
|
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, ""),
|
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
|
||||||
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
|
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
|
||||||
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
|
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) {
|
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, "", "");
|
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case 12:
|
||||||
|
var value = /** @type {string} */ (reader.readString());
|
||||||
|
msg.addUploadProperties(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@@ -1595,6 +1663,13 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.serializeBinaryToW
|
|||||||
if (f && f.getLength() > 0) {
|
if (f && f.getLength() > 0) {
|
||||||
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
|
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;};
|
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
|
* 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) {
|
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),
|
verify: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
|
||||||
programmer: jspb.Message.getFieldWithDefault(msg, 6, ""),
|
programmer: jspb.Message.getFieldWithDefault(msg, 6, ""),
|
||||||
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),
|
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) {
|
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, "", "");
|
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case 12:
|
||||||
|
var value = /** @type {string} */ (reader.readString());
|
||||||
|
msg.addUploadProperties(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@@ -2304,6 +2428,13 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.serializeBinaryToWriter =
|
|||||||
if (f && f.getLength() > 0) {
|
if (f && f.getLength() > 0) {
|
||||||
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
|
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;};
|
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
|
* Oneof group definitions for this message. Each group defines the field
|
||||||
|
@@ -36,6 +36,7 @@ import { Instance } from './cli-protocol/cc/arduino/cli/commands/v1/common_pb';
|
|||||||
import {
|
import {
|
||||||
CompileRequest,
|
CompileRequest,
|
||||||
CompileResponse,
|
CompileResponse,
|
||||||
|
InstanceNeedsReinitializationError,
|
||||||
} from './cli-protocol/cc/arduino/cli/commands/v1/compile_pb';
|
} 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 { Port as RpcPort } from './cli-protocol/cc/arduino/cli/commands/v1/port_pb';
|
||||||
import {
|
import {
|
||||||
@@ -89,48 +90,84 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {
|
|||||||
compileSummaryHandler
|
compileSummaryHandler
|
||||||
);
|
);
|
||||||
const toDisposeOnFinally = new DisposableCollection(handler);
|
const toDisposeOnFinally = new DisposableCollection(handler);
|
||||||
|
|
||||||
return new Promise<void>((resolve, reject) => {
|
return new Promise<void>((resolve, reject) => {
|
||||||
const call = client.compile(request);
|
let hasRetried = false;
|
||||||
if (cancellationToken) {
|
|
||||||
toDisposeOnFinally.push(
|
const handleUnexpectedError = (error: Error) => {
|
||||||
cancellationToken.onCancellationRequested(() => call.cancel())
|
console.error(
|
||||||
|
'Unexpected error occurred while compiling the sketch.',
|
||||||
|
error
|
||||||
);
|
);
|
||||||
}
|
reject(error);
|
||||||
call
|
};
|
||||||
.on('data', handler.onData)
|
|
||||||
.on('error', (error) => {
|
const handleCancellationError = () => {
|
||||||
if (!ServiceError.is(error)) {
|
console.log(userAbort);
|
||||||
console.error(
|
reject(UserAbortApplicationError());
|
||||||
'Unexpected error occurred while compiling the sketch.',
|
};
|
||||||
error
|
|
||||||
);
|
const handleInstanceNeedsReinitializationError = async (
|
||||||
reject(error);
|
error: ServiceError & InstanceNeedsReinitializationError
|
||||||
return;
|
) => {
|
||||||
}
|
if (hasRetried) {
|
||||||
if (ServiceError.isCancel(error)) {
|
// If error persists, send the error message to the output
|
||||||
console.log(userAbort);
|
return parseAndSendErrorResponse(error);
|
||||||
reject(UserAbortApplicationError());
|
}
|
||||||
return;
|
|
||||||
}
|
hasRetried = true;
|
||||||
const compilerErrors = tryParseError({
|
await this.refresh();
|
||||||
content: handler.content,
|
return startCompileStream();
|
||||||
sketch: options.sketch,
|
};
|
||||||
});
|
|
||||||
const message = nls.localize(
|
const parseAndSendErrorResponse = (error: ServiceError) => {
|
||||||
'arduino/compile/error',
|
const compilerErrors = tryParseError({
|
||||||
'Compilation error: {0}',
|
content: handler.content,
|
||||||
compilerErrors
|
sketch: options.sketch,
|
||||||
.map(({ message }) => message)
|
});
|
||||||
.filter(notEmpty)
|
const message = nls.localize(
|
||||||
.shift() ?? error.details
|
'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
|
call
|
||||||
);
|
.on('data', handler.onData)
|
||||||
reject(CoreError.VerifyFailed(message, compilerErrors));
|
.on('error', handleError)
|
||||||
})
|
.on('end', resolve);
|
||||||
.on('end', resolve);
|
};
|
||||||
|
|
||||||
|
startCompileStream();
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
toDisposeOnFinally.dispose();
|
toDisposeOnFinally.dispose();
|
||||||
if (!isCompileSummary(compileSummary)) {
|
if (!isCompileSummary(compileSummary)) {
|
||||||
|
@@ -22,9 +22,7 @@ import {
|
|||||||
import {
|
import {
|
||||||
EnumerateMonitorPortSettingsRequest,
|
EnumerateMonitorPortSettingsRequest,
|
||||||
EnumerateMonitorPortSettingsResponse,
|
EnumerateMonitorPortSettingsResponse,
|
||||||
MonitorPortConfiguration,
|
|
||||||
MonitorPortOpenRequest,
|
MonitorPortOpenRequest,
|
||||||
MonitorPortSetting,
|
|
||||||
MonitorRequest,
|
MonitorRequest,
|
||||||
MonitorResponse,
|
MonitorResponse,
|
||||||
} from './cli-protocol/cc/arduino/cli/commands/v1/monitor_pb';
|
} from './cli-protocol/cc/arduino/cli/commands/v1/monitor_pb';
|
||||||
@@ -39,6 +37,10 @@ import {
|
|||||||
} from '@theia/core/lib/common/promise-util';
|
} from '@theia/core/lib/common/promise-util';
|
||||||
import { MonitorServiceFactoryOptions } from './monitor-service-factory';
|
import { MonitorServiceFactoryOptions } from './monitor-service-factory';
|
||||||
import { ServiceError } from './service-error';
|
import { ServiceError } from './service-error';
|
||||||
|
import {
|
||||||
|
MonitorPortConfiguration,
|
||||||
|
MonitorPortSetting,
|
||||||
|
} from './cli-protocol/cc/arduino/cli/commands/v1/common_pb';
|
||||||
|
|
||||||
export const MonitorServiceName = 'monitor-service';
|
export const MonitorServiceName = 'monitor-service';
|
||||||
type DuplexHandlerKeys =
|
type DuplexHandlerKeys =
|
||||||
|
@@ -1,51 +1,68 @@
|
|||||||
import { Metadata, StatusObject } from '@grpc/grpc-js';
|
import { Metadata, StatusObject } from '@grpc/grpc-js';
|
||||||
import { Status } from './cli-protocol/google/rpc/status_pb';
|
import { Status } from './cli-protocol/google/rpc/status_pb';
|
||||||
import { stringToUint8Array } from '../common/utils';
|
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 { 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;
|
type ProtoError = typeof ProgrammerIsRequiredForUploadError;
|
||||||
const protoErrorsMap = new Map<string, ProtoError>([
|
const protoErrorsMap = new Map<string, ProtoError>([
|
||||||
[
|
[
|
||||||
'type.googleapis.com/cc.arduino.cli.commands.v1.ProgrammerIsRequiredForUploadError',
|
'cc.arduino.cli.commands.v1.ProgrammerIsRequiredForUploadError',
|
||||||
ProgrammerIsRequiredForUploadError,
|
ProgrammerIsRequiredForUploadError,
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError',
|
||||||
|
InstanceNeedsReinitializationError,
|
||||||
|
],
|
||||||
// handle other cli defined errors here
|
// handle other cli defined errors here
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export type ServiceError = StatusObject & Error;
|
export type ServiceError = StatusObject & Error;
|
||||||
export namespace ServiceError {
|
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
|
return is(arg) && arg.code === 1; // https://grpc.github.io/grpc/core/md_doc_statuscodes.html
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
export function is(arg: unknown): arg is ServiceError {
|
export function is(arg: unknown): arg is ServiceError {
|
||||||
return arg instanceof Error && isStatusObject(arg);
|
return arg instanceof Error && isStatusObject(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isInstanceOf(arg: unknown, type: unknown): boolean {
|
export function isInstanceOf<ProtoError>(
|
||||||
|
arg: unknown,
|
||||||
|
type: new (...args: unknown[]) => ProtoError
|
||||||
|
): arg is ProtoError {
|
||||||
if (!isStatusObject(arg)) {
|
if (!isStatusObject(arg)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const bin = arg.metadata.get('grpc-status-details-bin')[0];
|
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 uint8Array =
|
const errors = Status.deserializeBinary(uint8Array)
|
||||||
typeof bin === 'string'
|
.getDetailsList()
|
||||||
? stringToUint8Array(bin)
|
.map((details) => {
|
||||||
: new Uint8Array(bin.buffer, bin.byteOffset, bin.byteLength);
|
const typeName = details.getTypeName();
|
||||||
|
const ErrorType = protoErrorsMap.get(typeName);
|
||||||
|
return ErrorType?.deserializeBinary(details.getValue_asU8());
|
||||||
|
});
|
||||||
|
|
||||||
const errors = Status.deserializeBinary(uint8Array)
|
return !!errors.find((error) => error && error instanceof type);
|
||||||
.getDetailsList()
|
} catch {
|
||||||
.map((details) => {
|
return false;
|
||||||
const typeUrl = details.getTypeUrl();
|
}
|
||||||
const ErrorType = protoErrorsMap.get(typeUrl);
|
|
||||||
return ErrorType?.deserializeBinary(details.getValue_asU8());
|
|
||||||
});
|
|
||||||
|
|
||||||
return !!errors.find((error) => {
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
return error && error instanceof <any>type;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function isStatusObject(arg: unknown): arg is StatusObject {
|
function isStatusObject(arg: unknown): arg is StatusObject {
|
||||||
|
@@ -8,7 +8,7 @@ import type { Mutable } from '@theia/core/lib/common/types';
|
|||||||
import URI from '@theia/core/lib/common/uri';
|
import URI from '@theia/core/lib/common/uri';
|
||||||
import { FileUri } from '@theia/core/lib/node/file-uri';
|
import { FileUri } from '@theia/core/lib/node/file-uri';
|
||||||
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
||||||
import glob from 'glob';
|
import { glob } from 'glob';
|
||||||
import crypto from 'node:crypto';
|
import crypto from 'node:crypto';
|
||||||
import {
|
import {
|
||||||
CopyOptions,
|
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 sketchPath = FileUri.fsPath(sketch.uri);
|
||||||
const { tempDirRealpath } = this.isTempSketch;
|
|
||||||
const tempBuildPaths = [
|
let basePath: string;
|
||||||
this.tempBuildPathMD5Hash(tempDirRealpath, sketchPath),
|
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:
|
// 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.
|
// One of them should match if the sketch is not yet compiled.
|
||||||
// https://github.com/arduino/arduino-ide/pull/1809#discussion_r1071031040
|
// https://github.com/arduino/arduino-ide/pull/1809#discussion_r1071031040
|
||||||
if (isWindows && Win32DriveRegex.test(tempDirRealpath)) {
|
if (isWindows && Win32DriveRegex.test(basePath)) {
|
||||||
const toggleFirstCharCasing = (s: string) =>
|
const toggleFirstCharCasing = (s: string) =>
|
||||||
startsWithUpperCase(s) ? firstToLowerCase(s) : firstToUpperCase(s);
|
startsWithUpperCase(s) ? firstToLowerCase(s) : firstToUpperCase(s);
|
||||||
const otherCaseTempDirRealPath = toggleFirstCharCasing(tempDirRealpath);
|
const otherCaseDirRealPath = toggleFirstCharCasing(basePath);
|
||||||
tempBuildPaths.push(
|
buildPaths.push(this.buildPathMD5Hash(otherCaseDirRealPath, sketchPath));
|
||||||
this.tempBuildPathMD5Hash(otherCaseTempDirRealPath, sketchPath)
|
|
||||||
);
|
|
||||||
if (Win32DriveRegex.test(sketchPath)) {
|
if (Win32DriveRegex.test(sketchPath)) {
|
||||||
const otherCaseSketchPath = toggleFirstCharCasing(sketchPath);
|
const otherCaseSketchPath = toggleFirstCharCasing(sketchPath);
|
||||||
tempBuildPaths.push(
|
buildPaths.push(
|
||||||
this.tempBuildPathMD5Hash(tempDirRealpath, otherCaseSketchPath),
|
this.buildPathMD5Hash(basePath, otherCaseSketchPath),
|
||||||
this.tempBuildPathMD5Hash(
|
this.buildPathMD5Hash(otherCaseDirRealPath, otherCaseSketchPath)
|
||||||
otherCaseTempDirRealPath,
|
|
||||||
otherCaseSketchPath
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tempBuildPaths;
|
return buildPaths;
|
||||||
}
|
}
|
||||||
|
|
||||||
private tempBuildPathMD5Hash(tempFolderPath: string, path: string): string {
|
private buildPathMD5Hash(basePath: string, path: string): string {
|
||||||
return join(
|
return join(basePath, 'arduino', 'sketches', this.buildFolderMD5Hash(path));
|
||||||
tempFolderPath,
|
|
||||||
'arduino',
|
|
||||||
'sketches',
|
|
||||||
this.tempBuildFolderMD5Hash(path)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private tempBuildFolderMD5Hash(path: string): string {
|
private buildFolderMD5Hash(path: string): string {
|
||||||
return crypto.createHash('md5').update(path).digest('hex').toUpperCase();
|
return crypto.createHash('md5').update(path).digest('hex').toUpperCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -853,13 +849,13 @@ export async function discoverSketches(
|
|||||||
container: Mutable<SketchContainer>,
|
container: Mutable<SketchContainer>,
|
||||||
logger?: ILogger
|
logger?: ILogger
|
||||||
): Promise<SketchContainer> {
|
): Promise<SketchContainer> {
|
||||||
const pathToAllSketchFiles = await globSketches(
|
const pathToAllSketchFiles = await glob(
|
||||||
'/!(libraries|hardware)/**/*.{ino,pde}',
|
'/!(libraries|hardware)/**/*.{ino,pde}',
|
||||||
root
|
{ root }
|
||||||
);
|
);
|
||||||
// if no match try to glob the sketchbook as a sketch folder
|
// if no match try to glob the sketchbook as a sketch folder
|
||||||
if (!pathToAllSketchFiles.length) {
|
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.
|
// 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
|
||||||
// |
|
// |
|
||||||
// +--Nested_folder.ino
|
// +--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 = (
|
const getOrCreateChildContainer = (
|
||||||
container: SketchContainer,
|
container: SketchContainer,
|
||||||
segments: string[]
|
segments: string[]
|
||||||
@@ -974,17 +977,39 @@ export async function discoverSketches(
|
|||||||
uri: FileUri.create(path.dirname(pathToSketchFile)).toString(),
|
uri: FileUri.create(path.dirname(pathToSketchFile)).toString(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return prune(container);
|
return prune(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function globSketches(pattern: string, root: string): Promise<string[]> {
|
/**
|
||||||
return new Promise<string[]>((resolve, reject) => {
|
* Replica of Go `os.UserCacheDir()`.
|
||||||
glob(pattern, { root }, (error, results) => {
|
* https://github.com/golang/go/blob/777f43ab27bde4c662cd0a663f807f74f3fbab0f/src/os/file.go#L477
|
||||||
if (error) {
|
*/
|
||||||
reject(error);
|
export function userCacheDir(): string {
|
||||||
} else {
|
let dir: string | undefined;
|
||||||
resolve(results);
|
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;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
}
|
@@ -61,7 +61,7 @@ describe('core-service-impl', () => {
|
|||||||
expect('buildOutputUri' in arg).to.be.true;
|
expect('buildOutputUri' in arg).to.be.true;
|
||||||
expect(arg.buildOutputUri).to.be.not.undefined;
|
expect(arg.buildOutputUri).to.be.not.undefined;
|
||||||
|
|
||||||
const tempBuildPaths = await sketchesService.tempBuildPath(sketch);
|
const tempBuildPaths = await sketchesService.getBuildPath(sketch);
|
||||||
if (isWindows) {
|
if (isWindows) {
|
||||||
expect(tempBuildPaths.length).to.be.greaterThan(1);
|
expect(tempBuildPaths.length).to.be.greaterThan(1);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -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).
|
- 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.
|
- 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
|
## Build from source
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"name": "electron-app",
|
"name": "electron-app",
|
||||||
"version": "2.3.3",
|
"version": "2.3.5",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"main": "./src-gen/backend/electron-main.js",
|
"main": "./src-gen/backend/electron-main.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
"@theia/preferences": "1.41.0",
|
"@theia/preferences": "1.41.0",
|
||||||
"@theia/terminal": "1.41.0",
|
"@theia/terminal": "1.41.0",
|
||||||
"@theia/workspace": "1.41.0",
|
"@theia/workspace": "1.41.0",
|
||||||
"arduino-ide-extension": "2.3.3"
|
"arduino-ide-extension": "2.3.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@theia/cli": "1.41.0",
|
"@theia/cli": "1.41.0",
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
const isCI = require('is-ci');
|
const isCI = require('is-ci');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const glob = require('glob');
|
const { glob } = require('glob');
|
||||||
const { isRelease } = require('./utils');
|
const { isRelease } = require('./utils');
|
||||||
const { isZip, adjustArchiveStructure } = require('./archive');
|
const { isZip, adjustArchiveStructure } = require('./archive');
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
const childProcess = require('child_process');
|
const childProcess = require('child_process');
|
||||||
|
|
||||||
exports.default = async function (configuration) {
|
exports.default = async function (configuration) {
|
||||||
if (!process.env.GITHUB_ACTIONS) {
|
if (!process.env.GITHUB_ACTIONS || process.env.CAN_SIGN !== 'true') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programeerder",
|
"programmer": "Programeerder",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Herselekteer later",
|
"reselectLater": "Herselekteer later",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Kies Bord",
|
"selectBoard": "Kies Bord",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "oplaai",
|
"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.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 ",
|
"verifyAfterUpload": "Verifieer kode na oplaai ",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
31
i18n/ar.json
31
i18n/ar.json
@@ -8,13 +8,14 @@
|
|||||||
"goToCloudEditor": "الانتقال الى المحرر السحابي",
|
"goToCloudEditor": "الانتقال الى المحرر السحابي",
|
||||||
"goToIoTCloud": "الانتقال الى سحابة الIoT",
|
"goToIoTCloud": "الانتقال الى سحابة الIoT",
|
||||||
"goToProfile": "الانتقال الى ملف التعريف الشخصي",
|
"goToProfile": "الانتقال الى ملف التعريف الشخصي",
|
||||||
"menuTitle": "Arduino Cloud"
|
"menuTitle": "الخدمة السحابية للأردوينو"
|
||||||
},
|
},
|
||||||
"board": {
|
"board": {
|
||||||
"board": "اللوحة {0}",
|
"board": "اللوحة {0}",
|
||||||
"boardConfigDialogTitle": "أختر متحكم و منفذ مختلفين ",
|
"boardConfigDialogTitle": "اختر لوحة أخرى ومنفذها",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "معلومات اللوحة",
|
"boardInfo": "معلومات اللوحة",
|
||||||
"boards": "المتحكمات",
|
"boards": "اللوحات",
|
||||||
"configDialog1": "اختر لوحة و منفذ معا اذا اردت ان ترفع السكتش",
|
"configDialog1": "اختر لوحة و منفذ معا اذا اردت ان ترفع السكتش",
|
||||||
"configDialog2": "اذا قمت باختيار لوحة فقط ستسطيع ان تترجم لكن بدون ان ترفع المشروع",
|
"configDialog2": "اذا قمت باختيار لوحة فقط ستسطيع ان تترجم لكن بدون ان ترفع المشروع",
|
||||||
"couldNotFindPreviouslySelected": "تعذر ايجاد اللوحة '{0}' المختارة مسبقا في المنصة المثبتة '{1}' . الرجاء اعادة اختيار اللوحة التي تريد استعمالها يدويا . هل تريد باعادة الاختيار الان؟",
|
"couldNotFindPreviouslySelected": "تعذر ايجاد اللوحة '{0}' المختارة مسبقا في المنصة المثبتة '{1}' . الرجاء اعادة اختيار اللوحة التي تريد استعمالها يدويا . هل تريد باعادة الاختيار الان؟",
|
||||||
@@ -22,19 +23,21 @@
|
|||||||
"getBoardInfo": "الحصول على معلومات اللوحة",
|
"getBoardInfo": "الحصول على معلومات اللوحة",
|
||||||
"inSketchbook": "(داخل ملف المشاريع)",
|
"inSketchbook": "(داخل ملف المشاريع)",
|
||||||
"installNow": "نواة \"{0} {1}\" يجب تثبيتها للوحة \"{2}\" التي تم اختيارها . هل تريد تثبيتها الان ؟",
|
"installNow": "نواة \"{0} {1}\" يجب تثبيتها للوحة \"{2}\" التي تم اختيارها . هل تريد تثبيتها الان ؟",
|
||||||
"noBoardsFound": "لا يوجد لوحات ل \"{0}\"",
|
"noBoardsFound": "لم يتم العثور على لوحة لـ \"{0}\"",
|
||||||
"noNativeSerialPort": "منفذ الاتصال التسلسلي الاساسي , تعذر الحصول على معلومات",
|
"noNativeSerialPort": "منفذ الاتصال التسلسلي الاساسي , تعذر الحصول على معلومات",
|
||||||
"noPortsDiscovered": "تعذر ايجاد منافذ",
|
"noPortsDiscovered": "لم يتم العثور على منفذ متصل",
|
||||||
"nonSerialPort": "منفذ اتصال غير تسلسلي , تعذر الحصول على معلومات",
|
"nonSerialPort": "منفذ اتصال غير تسلسلي , تعذر الحصول على معلومات",
|
||||||
"openBoardsConfig": "قم باختيار لوحة و منفذ مختلفين",
|
"openBoardsConfig": "قم باختيار لوحة و منفذ مختلفين",
|
||||||
"pleasePickBoard": "من فضلك اختر لوحة متصلة على المنفذ الذي اخترته",
|
"pleasePickBoard": "من فضلك اختر لوحة متصلة على المنفذ الذي اخترته",
|
||||||
"port": "المنفذ {0}",
|
"port": "المنفذ {0}",
|
||||||
"ports": "منافذ",
|
"ports": "منافذ",
|
||||||
"programmer": "المبرمجة",
|
"programmer": "المبرمجة",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "اعد الاختيار لاحقا",
|
"reselectLater": "اعد الاختيار لاحقا",
|
||||||
"revertBoardsConfig": "استخدم '{0}' تعامل مع '{1}'",
|
"revertBoardsConfig": "استخدم '{0}' تعامل مع '{1}'",
|
||||||
"searchBoard": "أبحث عن متحكم",
|
"searchBoard": "أبحث عن متحكم",
|
||||||
"selectBoard": "اختر لوحة",
|
"selectBoard": "اختر لوحة",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "الرجاء اختيار منفذ من اجل الحصول على معلومات اللوحة",
|
"selectPortForInfo": "الرجاء اختيار منفذ من اجل الحصول على معلومات اللوحة",
|
||||||
"showAllAvailablePorts": "يظهر كل المنافذ المتاحة عند تفعيله",
|
"showAllAvailablePorts": "يظهر كل المنافذ المتاحة عند تفعيله",
|
||||||
"showAllPorts": "أظهر جميع المنافذ",
|
"showAllPorts": "أظهر جميع المنافذ",
|
||||||
@@ -139,7 +142,7 @@
|
|||||||
"installManually": "ثبّت يدويا",
|
"installManually": "ثبّت يدويا",
|
||||||
"later": "لاحقا",
|
"later": "لاحقا",
|
||||||
"noBoardSelected": "لم يتم اختيار اي لوحة",
|
"noBoardSelected": "لم يتم اختيار اي لوحة",
|
||||||
"noSketchOpened": "No sketch opened",
|
"noSketchOpened": "لم يتم فتح صفحة كتابة الكود",
|
||||||
"notConnected": "[غير متصل]",
|
"notConnected": "[غير متصل]",
|
||||||
"offlineIndicator": "انت غير متصل بالانترنت على الارجح , بدون الاتصال بالانترنت لن تستطيع واجهة سطر الاوامر الخاصة بالاردوينو \"Arduino CLI\" تحميل الموارد المطلوبة و من الممكن ان تسبب باخطاء , الرجاء الاتصال بالانترنت و اعادة تشغيل البرنامج",
|
"offlineIndicator": "انت غير متصل بالانترنت على الارجح , بدون الاتصال بالانترنت لن تستطيع واجهة سطر الاوامر الخاصة بالاردوينو \"Arduino CLI\" تحميل الموارد المطلوبة و من الممكن ان تسبب باخطاء , الرجاء الاتصال بالانترنت و اعادة تشغيل البرنامج",
|
||||||
"oldFormat": "ال '{0}' ما زالت تستخدم صيغة `.pde` القديمة . هل تريد الانتقال الى صيغة `.ino` الجديدة ؟",
|
"oldFormat": "ال '{0}' ما زالت تستخدم صيغة `.pde` القديمة . هل تريد الانتقال الى صيغة `.ino` الجديدة ؟",
|
||||||
@@ -147,13 +150,13 @@
|
|||||||
"processing": "تتم المعالجة",
|
"processing": "تتم المعالجة",
|
||||||
"recommended": "يُنصح به",
|
"recommended": "يُنصح به",
|
||||||
"retired": "متقاعد",
|
"retired": "متقاعد",
|
||||||
"selectManually": "Select Manually",
|
"selectManually": "اختر يدوياً",
|
||||||
"selectedOn": "{0} شغّل",
|
"selectedOn": "{0} شغّل",
|
||||||
"serialMonitor": "مراقب المنفذ التسلسلي \"سيريال بورت\"\n ",
|
"serialMonitor": "مراقب المنفذ التسلسلي \"سيريال بورت\"\n ",
|
||||||
"type": "النوع",
|
"type": "النوع",
|
||||||
"unknown": "غير معروف",
|
"unknown": "غير معروف",
|
||||||
"updateable": "يمكن تحديثه",
|
"updateable": "يمكن تحديثه",
|
||||||
"userAbort": "User abort"
|
"userAbort": "إلغاء المستخدم"
|
||||||
},
|
},
|
||||||
"compile": {
|
"compile": {
|
||||||
"error": "خطا في الترجمة : {0}"
|
"error": "خطا في الترجمة : {0}"
|
||||||
@@ -212,7 +215,7 @@
|
|||||||
"debug": {
|
"debug": {
|
||||||
"debugWithMessage": "تصحيح برمجي - {0}",
|
"debugWithMessage": "تصحيح برمجي - {0}",
|
||||||
"debuggingNotSupported": "'{0}' لا يقبل التصحيح البرمجي",
|
"debuggingNotSupported": "'{0}' لا يقبل التصحيح البرمجي",
|
||||||
"getDebugInfo": "Getting debug info...",
|
"getDebugInfo": "الحصول على معلومات التصحيح",
|
||||||
"noPlatformInstalledFor": "المنصة غير مثبتة ل '{0}'",
|
"noPlatformInstalledFor": "المنصة غير مثبتة ل '{0}'",
|
||||||
"optimizeForDebugging": "التحسين من اجل التصحيح البرمجي",
|
"optimizeForDebugging": "التحسين من اجل التصحيح البرمجي",
|
||||||
"sketchIsNotCompiled": "المشروع '{0}' يجب ان يتم التحقق منه قبل بدء جلسة تصحيح الاخطاء . الرجاء التحقق من المشروع و اعادة تشغيل مصحح الاخطاء مرة اخرى .\nهل تريد التحقق من المشروع الان؟"
|
"sketchIsNotCompiled": "المشروع '{0}' يجب ان يتم التحقق منه قبل بدء جلسة تصحيح الاخطاء . الرجاء التحقق من المشروع و اعادة تشغيل مصحح الاخطاء مرة اخرى .\nهل تريد التحقق من المشروع الان؟"
|
||||||
@@ -368,7 +371,7 @@
|
|||||||
"cloud.pull.warn": "True اذا كان يجب تحذير المستخدمين قبل سحب مشروع من السحابة . True افتراضيا",
|
"cloud.pull.warn": "True اذا كان يجب تحذير المستخدمين قبل سحب مشروع من السحابة . True افتراضيا",
|
||||||
"cloud.push.warn": "True اذا كان يجب تحذير المستخدمين قبل دفع مشروع الى السحابة . True افتراضيا",
|
"cloud.push.warn": "True اذا كان يجب تحذير المستخدمين قبل دفع مشروع الى السحابة . True افتراضيا",
|
||||||
"cloud.pushpublic.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.sharedSpaceId": "معرّف مساحة Arduino Cloud المشتركة لتحميل مجموعة المشاريع منها. إذا تُركت فارغة، يتم اختيار مساحتك الخاصة",
|
||||||
"cloud.sketchSyncEndpoint": "الوجهة المستخدمة لدفع و سحب المشاريع من الخلفية . تشير افتراضيا الى Arduino Cloud API.",
|
"cloud.sketchSyncEndpoint": "الوجهة المستخدمة لدفع و سحب المشاريع من الخلفية . تشير افتراضيا الى Arduino Cloud API.",
|
||||||
"compile": "الترجمة",
|
"compile": "الترجمة",
|
||||||
"compile.experimental": "مُفعل اذا وَجَبَ على الIDE التعامل مع عدة اخطاء اثناء الترجمة . غير مفعل بشكل افتراضي ",
|
"compile.experimental": "مُفعل اذا وَجَبَ على الIDE التعامل مع عدة اخطاء اثناء الترجمة . غير مفعل بشكل افتراضي ",
|
||||||
@@ -386,7 +389,7 @@
|
|||||||
"invalid.editorFontSize": "حجم خط المحرّر غير صالح . يجب ان يكون عدد موجب",
|
"invalid.editorFontSize": "حجم خط المحرّر غير صالح . يجب ان يكون عدد موجب",
|
||||||
"invalid.sketchbook.location": "موقع ملف المشروع غير صالح : {0}",
|
"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.asyncWorkers": "عدد العاملين غير المتزامنين المستخدمين من قبل خادم لغة Arduino (clangd). يستخدم الفهرس الخلفي أيضاً نفس عدد العاملين. الحد الأدنى للقيمة هو 0، والحد الأقصى هو 8. عندما تكون القيمة 0، يستخدم خادم اللغة جميع النوى المتاحة. القيمة الافتراضية هي 0",
|
||||||
"language.log": "\"True\" اذا كان مخدم اللغات الخاص بArduino يستطيع توليد سجلات الى ملف المشروع , و الا \"False\", و هي كذلك بشكل افتراضي.",
|
"language.log": "\"True\" اذا كان مخدم اللغات الخاص بArduino يستطيع توليد سجلات الى ملف المشروع , و الا \"False\", و هي كذلك بشكل افتراضي.",
|
||||||
"language.realTimeDiagnostics": "اذا تم تفعيله , سيقوم سيرفر اللغة باعطاء تشخيصات للاخطاء خلال الوقت الحقيقي اثناء الكتابة ضمن المحرر . غير مفعل بشكل افتراضي",
|
"language.realTimeDiagnostics": "اذا تم تفعيله , سيقوم سيرفر اللغة باعطاء تشخيصات للاخطاء خلال الوقت الحقيقي اثناء الكتابة ضمن المحرر . غير مفعل بشكل افتراضي",
|
||||||
"manualProxy": "اعدادات الوكيل يدوياً",
|
"manualProxy": "اعدادات الوكيل يدوياً",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "مفعل اذا اراد المستخدم ان يتم تبليغه في حالوجود استطلاع راي . مفعل بشكل افتراضي",
|
"survey.notification": "مفعل اذا اراد المستخدم ان يتم تبليغه في حالوجود استطلاع راي . مفعل بشكل افتراضي",
|
||||||
"unofficialBoardSupport": "انقر لعرض قائمة عناوين URL للوحات المدعومة بشكل غير رسمي",
|
"unofficialBoardSupport": "انقر لعرض قائمة عناوين URL للوحات المدعومة بشكل غير رسمي",
|
||||||
"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 لخرج الرفع المطول . False افتراضيا",
|
"upload.verbose": "True لخرج الرفع المطول . False افتراضيا",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "التحقق من الكود بعد الرفع",
|
"verifyAfterUpload": "التحقق من الكود بعد الرفع",
|
||||||
"window.autoScale": "True اذا كان مقياس الواجهة يتزامن تلقائيا مع حجم الخط ",
|
"window.autoScale": "True اذا كان مقياس الواجهة يتزامن تلقائيا مع حجم الخط ",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
@@ -466,8 +471,8 @@
|
|||||||
"saveSketchAs": "حفظ ملف المشروع باسم ...",
|
"saveSketchAs": "حفظ ملف المشروع باسم ...",
|
||||||
"showFolder": "اعرض ملف المشروع",
|
"showFolder": "اعرض ملف المشروع",
|
||||||
"sketch": "مشروع",
|
"sketch": "مشروع",
|
||||||
"sketchAlreadyContainsThisFileError": "The sketch already contains a file named '{0}'",
|
"sketchAlreadyContainsThisFileError": "السكيتش يحتوي بالفعل على ملف باسم{0}",
|
||||||
"sketchAlreadyContainsThisFileMessage": "Failed to save sketch \"{0}\" as \"{1}\". {2}",
|
"sketchAlreadyContainsThisFileMessage": "فشل في حفظ السكيتش {0} كـ {1} {2}",
|
||||||
"sketchbook": "مجلد المشاريع",
|
"sketchbook": "مجلد المشاريع",
|
||||||
"titleLocalSketchbook": "مجلد المشاريع المحلي",
|
"titleLocalSketchbook": "مجلد المشاريع المحلي",
|
||||||
"titleSketchbook": "مجلد المشاريع",
|
"titleSketchbook": "مجلد المشاريع",
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Proqramlayıcı",
|
"programmer": "Proqramlayıcı",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Daha Sonra Yenidən Seç",
|
"reselectLater": "Daha Sonra Yenidən Seç",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Select Board",
|
"selectBoard": "Select Board",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Плата{0}",
|
"board": "Плата{0}",
|
||||||
"boardConfigDialogTitle": "Абярыце іншую плату і порт",
|
"boardConfigDialogTitle": "Абярыце іншую плату і порт",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Інфармацыя пра плату",
|
"boardInfo": "Інфармацыя пра плату",
|
||||||
"boards": "платы",
|
"boards": "платы",
|
||||||
"configDialog1": "Абярыце як плату, так і порт, калі вы жадаеце загрузіць сцэнар.",
|
"configDialog1": "Абярыце як плату, так і порт, калі вы жадаеце загрузіць сцэнар.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Порт{0}",
|
"port": "Порт{0}",
|
||||||
"ports": "порты",
|
"ports": "порты",
|
||||||
"programmer": "Сродак праграмавання",
|
"programmer": "Сродак праграмавання",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Абярыце паўторна пазней",
|
"reselectLater": "Абярыце паўторна пазней",
|
||||||
"revertBoardsConfig": "Ужыта '{0}' выяўлена ў '{1}'",
|
"revertBoardsConfig": "Ужыта '{0}' выяўлена ў '{1}'",
|
||||||
"searchBoard": "Знайсці плату",
|
"searchBoard": "Знайсці плату",
|
||||||
"selectBoard": "Знайсці плату",
|
"selectBoard": "Знайсці плату",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Калі ласка, абярыце порт, каб атрымаць інфармацыю пра плату.",
|
"selectPortForInfo": "Калі ласка, абярыце порт, каб атрымаць інфармацыю пра плату.",
|
||||||
"showAllAvailablePorts": "Паказвае ўсе даступныя порты, калі яны ўключаныя",
|
"showAllAvailablePorts": "Паказвае ўсе даступныя порты, калі яны ўключаныя",
|
||||||
"showAllPorts": "Паказаць усе порты",
|
"showAllPorts": "Паказаць усе порты",
|
||||||
@@ -368,7 +371,7 @@
|
|||||||
"cloud.pull.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад стварэннем сцэнара ў воблаку.\nПершапачаткова true.",
|
"cloud.pull.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад стварэннем сцэнара ў воблаку.\nПершапачаткова true.",
|
||||||
"cloud.push.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад запускам сцэнара ў воблаку.\nПершапачаткова true.",
|
"cloud.push.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад запускам сцэнара ў воблаку.\nПершапачаткова true.",
|
||||||
"cloud.pushpublic.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад адпраўкай агульнадаступнага сцэнара ў воблака.\nПершапачаткова true.",
|
"cloud.pushpublic.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад адпраўкай агульнадаступнага сцэнара ў воблака.\nПершапачаткова true.",
|
||||||
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
|
"cloud.sharedSpaceId": "Ідэнтыфікатар агульнай прасторы воблака Arduino, з якога можна загрузіць альбом сцэнараў.\nКалі пустое, абрана вашая асабістая прастора.",
|
||||||
"cloud.sketchSyncEndpoint": "Канчатковая кропка, якая ўжываецца для адпраўкі і выцягвання сцэнара з сервернай часткі.\nПершапачаткова яна паказвае на API воблака Arduino.",
|
"cloud.sketchSyncEndpoint": "Канчатковая кропка, якая ўжываецца для адпраўкі і выцягвання сцэнара з сервернай часткі.\nПершапачаткова яна паказвае на API воблака Arduino.",
|
||||||
"compile": "кампіляваць",
|
"compile": "кампіляваць",
|
||||||
"compile.experimental": "Калі true, асяроддзе IDE павінна апрацоўваць некалькі памылак кампілятара.\nПершапачаткова false",
|
"compile.experimental": "Калі true, асяроддзе IDE павінна апрацоўваць некалькі памылак кампілятара.\nПершапачаткова false",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Калі true, карыстальнікі павінны атрымліваць апавяшчэнні аб даступнасці апытання.\nПершапачаткова true.",
|
"survey.notification": "Калі true, карыстальнікі павінны атрымліваць апавяшчэнні аб даступнасці апытання.\nПершапачаткова true.",
|
||||||
"unofficialBoardSupport": "Пстрыкніце, каб праглядзець спіс адрасоў URL падтрымкі неафіцыйных плат",
|
"unofficialBoardSupport": "Пстрыкніце, каб праглядзець спіс адрасоў URL падтрымкі неафіцыйных плат",
|
||||||
"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, каб быў падрабязны вывад пры загрузцы.\nПершапачаткова false.",
|
"upload.verbose": "Калі true, каб быў падрабязны вывад пры загрузцы.\nПершапачаткова false.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "Праверыць код пасля выгрузкі",
|
"verifyAfterUpload": "Праверыць код пасля выгрузкі",
|
||||||
"window.autoScale": "Калі true, карыстальніцкі інтэрфейс аўтаматычна маштабуецца ў адпаведнасці з памерам шрыфту.",
|
"window.autoScale": "Калі true, карыстальніцкі інтэрфейс аўтаматычна маштабуецца ў адпаведнасці з памерам шрыфту.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Платка{0}",
|
"board": "Платка{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Информация за платка",
|
"boardInfo": "Информация за платка",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Изберете както платка, така и порт, ако искате да качите скица.",
|
"configDialog1": "Изберете както платка, така и порт, ако искате да качите скица.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Порт{0}",
|
"port": "Порт{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Програматор",
|
"programmer": "Програматор",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Изберете отново по-късно",
|
"reselectLater": "Изберете отново по-късно",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Изберете платка",
|
"selectBoard": "Изберете платка",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Моля, изберете порт, за да получите информация за платката.",
|
"selectPortForInfo": "Моля, изберете порт, за да получите информация за платката.",
|
||||||
"showAllAvailablePorts": "Показва всички налични портове, когато е активиран",
|
"showAllAvailablePorts": "Показва всички налични портове, когато е активиран",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True by default.",
|
"survey.notification": "True if users should be notified if a survey is available. True by default.",
|
||||||
"unofficialBoardSupport": "Щракнете за списък с неофициално поддържаните URL адреси на платки",
|
"unofficialBoardSupport": "Щракнете за списък с неофициално поддържаните URL адреси на платки",
|
||||||
"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 за подробен изход за качване. False по подразбиране.",
|
"upload.verbose": "True за подробен изход за качване. False по подразбиране.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "Потвърдете кода след качване",
|
"verifyAfterUpload": "Потвърдете кода след качване",
|
||||||
"window.autoScale": "True , ако потребителският интерфейс автоматично се мащабира с размера на шрифта.",
|
"window.autoScale": "True , ако потребителският интерфейс автоматично се мащабира с размера на шрифта.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Placa {0}",
|
"board": "Placa {0}",
|
||||||
"boardConfigDialogTitle": "Selecciona una altra placa i port",
|
"boardConfigDialogTitle": "Selecciona una altra placa i port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Informació de la placa",
|
"boardInfo": "Informació de la placa",
|
||||||
"boards": "plaques",
|
"boards": "plaques",
|
||||||
"configDialog1": "Selecciona una placa i un port si vols carregar un programa.",
|
"configDialog1": "Selecciona una placa i un port si vols carregar un programa.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port {0}",
|
"port": "Port {0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programador",
|
"programmer": "Programador",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Torna a triar més tard",
|
"reselectLater": "Torna a triar més tard",
|
||||||
"revertBoardsConfig": "Fes servir ' {0} ' descobert a ' {1} '",
|
"revertBoardsConfig": "Fes servir ' {0} ' descobert a ' {1} '",
|
||||||
"searchBoard": "Busca una placa",
|
"searchBoard": "Busca una placa",
|
||||||
"selectBoard": "Tria una placa",
|
"selectBoard": "Tria una placa",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Tria un port per obtenir informació de la placa.",
|
"selectPortForInfo": "Tria un port per obtenir informació de la placa.",
|
||||||
"showAllAvailablePorts": "Mostra tots els ports disponibles habilitats",
|
"showAllAvailablePorts": "Mostra tots els ports disponibles habilitats",
|
||||||
"showAllPorts": "Mostra tots els ports",
|
"showAllPorts": "Mostra tots els ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Si està activat els usuaris seran notificats si hi ha una enquesta disponible. Per defecte està activat.",
|
"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",
|
"unofficialBoardSupport": "Fes clic per obtenir una llista d'URLs de suport de plaques no oficials",
|
||||||
"upload": "carrega",
|
"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.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",
|
"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.autoScale": "Si està activat la interfície s'escalarà automàticament amb la mida de la lletra.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
21
i18n/cs.json
21
i18n/cs.json
@@ -5,43 +5,46 @@
|
|||||||
"label": "O {0}"
|
"label": "O {0}"
|
||||||
},
|
},
|
||||||
"account": {
|
"account": {
|
||||||
"goToCloudEditor": "Go to Cloud Editor",
|
"goToCloudEditor": "Otevřít v cloudovém editoru",
|
||||||
"goToIoTCloud": "Go to IoT Cloud",
|
"goToIoTCloud": "Go to IoT Cloud",
|
||||||
"goToProfile": "Go to Profile",
|
"goToProfile": "Jdi do profilu",
|
||||||
"menuTitle": "Arduino Cloud"
|
"menuTitle": "Arduino Cloud"
|
||||||
},
|
},
|
||||||
"board": {
|
"board": {
|
||||||
"board": "Deska {0}",
|
"board": "Deska {0}",
|
||||||
"boardConfigDialogTitle": "Zvolit jinou Desku a Port",
|
"boardConfigDialogTitle": "Zvolit jinou Desku a Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Info o desce",
|
"boardInfo": "Info o desce",
|
||||||
"boards": "Desky",
|
"boards": "Desky",
|
||||||
"configDialog1": "Pokud chcete nahrát sketch, musíte zvolit jak desku tak i port.",
|
"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.",
|
"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í? ",
|
"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.",
|
"getBoardInfo": "Získat info o desce.",
|
||||||
"inSketchbook": "(v projektech)",
|
"inSketchbook": "(v projektech)",
|
||||||
"installNow": "\"{0}{1}\" jádro musí být instalováno pro aktuálně zvolenou \"{2}\" desku. Chcete ho nyní nainstalovat?",
|
"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}\"",
|
"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",
|
"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...",
|
"openBoardsConfig": "Zvolte jinou desku a port...",
|
||||||
"pleasePickBoard": "Vyberte prosím desku která je připojená k zvolenému portu. ",
|
"pleasePickBoard": "Vyberte prosím desku která je připojená k zvolenému portu. ",
|
||||||
"port": "Port {0}",
|
"port": "Port {0}",
|
||||||
"ports": "porty",
|
"ports": "porty",
|
||||||
"programmer": "Programátor",
|
"programmer": "Programátor",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Zvolit později",
|
"reselectLater": "Zvolit později",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Použij '{0}' objeven na '{1}'",
|
||||||
"searchBoard": "Vyhledat desku",
|
"searchBoard": "Vyhledat desku",
|
||||||
"selectBoard": "Zvolit desku",
|
"selectBoard": "Zvolit desku",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Prosím zvolte port pro získání informací o desce.",
|
"selectPortForInfo": "Prosím zvolte port pro získání informací o desce.",
|
||||||
"showAllAvailablePorts": "Zobrazit všechny dostupné porty (pokud je zaškrtnuto)",
|
"showAllAvailablePorts": "Zobrazit všechny dostupné porty (pokud je zaškrtnuto)",
|
||||||
"showAllPorts": "Ukázat všechny porty",
|
"showAllPorts": "Ukázat všechny porty",
|
||||||
"succesfullyInstalledPlatform": "Platforma {0}:{1} byla úspěšně nainstalována.",
|
"succesfullyInstalledPlatform": "Platforma {0}:{1} byla úspěšně nainstalována.",
|
||||||
"succesfullyUninstalledPlatform": "Platforma {0}:{1} byla úspěšně odinstalována.",
|
"succesfullyUninstalledPlatform": "Platforma {0}:{1} byla úspěšně odinstalována.",
|
||||||
"typeOfPorts": "{0}porty",
|
"typeOfPorts": "{0}porty",
|
||||||
"unconfirmedBoard": "Unconfirmed board",
|
"unconfirmedBoard": "Nepotvrzená deska",
|
||||||
"unknownBoard": "Neznámá deska"
|
"unknownBoard": "Neznámá deska"
|
||||||
},
|
},
|
||||||
"boardsManager": "Manažér desek",
|
"boardsManager": "Manažér desek",
|
||||||
@@ -84,7 +87,7 @@
|
|||||||
},
|
},
|
||||||
"cli-error-parser": {
|
"cli-error-parser": {
|
||||||
"keyboardError": "'Keyboard' nebylo nalezeno. Obsahuje váš projekt řádek '#include <Keyboard.h>'?",
|
"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": {
|
"cloud": {
|
||||||
"chooseSketchVisibility": "Zvolte viditelnost sketche:",
|
"chooseSketchVisibility": "Zvolte viditelnost sketche:",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True by default.",
|
"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",
|
"unofficialBoardSupport": "Zde klikněte pro seznam adres neoficiálně podporovaných desek",
|
||||||
"upload": "nahrát",
|
"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.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í",
|
"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.autoScale": "Ano pokud se měřítko uživatelského prostředí automaticky mění s velikostí písma. ",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programmer",
|
"programmer": "Programmer",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Reselect later",
|
"reselectLater": "Reselect later",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Select Board",
|
"selectBoard": "Select Board",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": " Anderes Board und anderen Ports wählen",
|
"boardConfigDialogTitle": " Anderes Board und anderen Ports wählen",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board-Informationen",
|
"boardInfo": "Board-Informationen",
|
||||||
"boards": "Boards",
|
"boards": "Boards",
|
||||||
"configDialog1": " Wähle ein Board und einen Port, wenn du den Sketch hochladen möchtest.",
|
"configDialog1": " Wähle ein Board und einen Port, wenn du den Sketch hochladen möchtest.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "Ports",
|
"ports": "Ports",
|
||||||
"programmer": "Programmer",
|
"programmer": "Programmer",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Später auswählen",
|
"reselectLater": "Später auswählen",
|
||||||
"revertBoardsConfig": "'{0}' an '{1}' verwenden",
|
"revertBoardsConfig": "'{0}' an '{1}' verwenden",
|
||||||
"searchBoard": "Board suchen",
|
"searchBoard": "Board suchen",
|
||||||
"selectBoard": "Board wählen",
|
"selectBoard": "Board wählen",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": " Wähle einen Port, um Infos über das Board zu erhalten.",
|
"selectPortForInfo": " Wähle einen Port, um Infos über das Board zu erhalten.",
|
||||||
"showAllAvailablePorts": " Alle verfügbaren Ports anzeigen, wenn aktiviert.",
|
"showAllAvailablePorts": " Alle verfügbaren Ports anzeigen, wenn aktiviert.",
|
||||||
"showAllPorts": "Alle Ports anzeigen",
|
"showAllPorts": "Alle Ports anzeigen",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Wenn diese Option aktiviert ist, werden Nutzer über eine verfügbare Umfrage informiert. Standardmäßig aktiviert.",
|
"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.",
|
"unofficialBoardSupport": "Klicke hier, um eine URL-Liste von inoffiziell unterstützten Boards anzuzeigen.",
|
||||||
"upload": "Hochladen",
|
"upload": "Hochladen",
|
||||||
|
"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.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 ",
|
"verifyAfterUpload": "Code nach Hochladen überprüfen ",
|
||||||
"window.autoScale": "Wenn die Option aktiviert ist, skaliert die Nutzeroberfläche automatisch mit der Schriftgröße.",
|
"window.autoScale": "Wenn die Option aktiviert ist, skaliert die Nutzeroberfläche automatisch mit der Schriftgröße.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Πλακέτα{0}",
|
"board": "Πλακέτα{0}",
|
||||||
"boardConfigDialogTitle": "Επιλέξτε Άλλη Πλακέτα & Θύρα",
|
"boardConfigDialogTitle": "Επιλέξτε Άλλη Πλακέτα & Θύρα",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Πληροφορίες Πλακέτας",
|
"boardInfo": "Πληροφορίες Πλακέτας",
|
||||||
"boards": "Πίνακες - Πλακέτες",
|
"boards": "Πίνακες - Πλακέτες",
|
||||||
"configDialog1": "Επίλεξε Πλακέτα και Θύρα αν θέλεις να ανεβάσεις ένα έργο.",
|
"configDialog1": "Επίλεξε Πλακέτα και Θύρα αν θέλεις να ανεβάσεις ένα έργο.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Θύρα{0}",
|
"port": "Θύρα{0}",
|
||||||
"ports": "Θύρες",
|
"ports": "Θύρες",
|
||||||
"programmer": "Προγραμματιστής",
|
"programmer": "Προγραμματιστής",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Επιλογή αργότερα",
|
"reselectLater": "Επιλογή αργότερα",
|
||||||
"revertBoardsConfig": "Χρησιμοποιήστε '{0}' που ανακαλύφθηκε στο '{1}'",
|
"revertBoardsConfig": "Χρησιμοποιήστε '{0}' που ανακαλύφθηκε στο '{1}'",
|
||||||
"searchBoard": "Αναζήτηση πλακέτας",
|
"searchBoard": "Αναζήτηση πλακέτας",
|
||||||
"selectBoard": "Επιλογή Πλακέτας",
|
"selectBoard": "Επιλογή Πλακέτας",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Παρακαλώ επίλεξε μια θύρα για εμφάνιση πληροφοριών πλακέτας.",
|
"selectPortForInfo": "Παρακαλώ επίλεξε μια θύρα για εμφάνιση πληροφοριών πλακέτας.",
|
||||||
"showAllAvailablePorts": "Εμφανίζει όλες τις διαθέσιμες θύρες όταν είναι ενεργοποιημένο.",
|
"showAllAvailablePorts": "Εμφανίζει όλες τις διαθέσιμες θύρες όταν είναι ενεργοποιημένο.",
|
||||||
"showAllPorts": "Εμφάνιση όλων των θυρών",
|
"showAllPorts": "Εμφάνιση όλων των θυρών",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Σωστό εάν οι χρήστες πρέπει να ειδοποιούνται εάν υπάρχει διαθέσιμη έρευνα. Αληθές από προεπιλογή.",
|
"survey.notification": "Σωστό εάν οι χρήστες πρέπει να ειδοποιούνται εάν υπάρχει διαθέσιμη έρευνα. Αληθές από προεπιλογή.",
|
||||||
"unofficialBoardSupport": "Κλικ για λίστα Συνδέσμων ανεπίσημης υποστήριξης πλακετών",
|
"unofficialBoardSupport": "Κλικ για λίστα Συνδέσμων ανεπίσημης υποστήριξης πλακετών",
|
||||||
"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": "Αληθές για λεπτομερή έξοδο ανεβάσματος. Ψευδές απο προεπιλογή.",
|
"upload.verbose": "Αληθές για λεπτομερή έξοδο ανεβάσματος. Ψευδές απο προεπιλογή.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "Επιβεβαίωση κώδικα μετά το ανέβασμα",
|
"verifyAfterUpload": "Επιβεβαίωση κώδικα μετά το ανέβασμα",
|
||||||
"window.autoScale": "Αληθές αν η διεπαφή χρήστη κλιμακλωνεται αυτόματα μαζί με το μέγεθος γραμματοσειράς.",
|
"window.autoScale": "Αληθές αν η διεπαφή χρήστη κλιμακλωνεται αυτόματα μαζί με το μέγεθος γραμματοσειράς.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
16
i18n/en.json
16
i18n/en.json
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programmer",
|
"programmer": "Programmer",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Reselect later",
|
"reselectLater": "Reselect later",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Select Board",
|
"selectBoard": "Select Board",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -272,6 +275,9 @@
|
|||||||
"checkForUpdates": "Check for Arduino IDE Updates",
|
"checkForUpdates": "Check for Arduino IDE Updates",
|
||||||
"closeAndInstallButton": "Close and Install",
|
"closeAndInstallButton": "Close and Install",
|
||||||
"closeToInstallNotice": "Close the software and install the update on your machine.",
|
"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",
|
"downloadButton": "Download",
|
||||||
"downloadingNotice": "Downloading the latest version of the Arduino IDE.",
|
"downloadingNotice": "Downloading the latest version of the Arduino IDE.",
|
||||||
"errorCheckingForUpdates": "Error while checking for Arduino IDE updates.\n{0}",
|
"errorCheckingForUpdates": "Error while checking for Arduino IDE updates.\n{0}",
|
||||||
@@ -412,7 +418,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
@@ -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?",
|
"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"
|
"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": {
|
"workspace": {
|
||||||
"alreadyExists": "'{0}' already exists."
|
"alreadyExists": "'{0}' already exists."
|
||||||
}
|
}
|
||||||
|
17
i18n/es.json
17
i18n/es.json
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Placa{0}",
|
"board": "Placa{0}",
|
||||||
"boardConfigDialogTitle": "Seleccionar Otra Placa y Puerto",
|
"boardConfigDialogTitle": "Seleccionar Otra Placa y Puerto",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Información de la placa",
|
"boardInfo": "Información de la placa",
|
||||||
"boards": "Placas",
|
"boards": "Placas",
|
||||||
"configDialog1": "Selecciona tanto una placa como un puerto si quieres cargar un sketch.",
|
"configDialog1": "Selecciona tanto una placa como un puerto si quieres cargar un sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Puerto {0}",
|
"port": "Puerto {0}",
|
||||||
"ports": "puertos",
|
"ports": "puertos",
|
||||||
"programmer": "Programador",
|
"programmer": "Programador",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Vuelve a seleccionar más tarde",
|
"reselectLater": "Vuelve a seleccionar más tarde",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Buscar placa",
|
"searchBoard": "Buscar placa",
|
||||||
"selectBoard": "Seleccionar Placa",
|
"selectBoard": "Seleccionar Placa",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Por favor, seleccione un puerto para obtener información sobre la placa.",
|
"selectPortForInfo": "Por favor, seleccione un puerto para obtener información sobre la placa.",
|
||||||
"showAllAvailablePorts": "Muestra todos los puertos disponibles cuando está activado",
|
"showAllAvailablePorts": "Muestra todos los puertos disponibles cuando está activado",
|
||||||
"showAllPorts": "Mostrar todos los puertos",
|
"showAllPorts": "Mostrar todos los puertos",
|
||||||
@@ -78,9 +81,9 @@
|
|||||||
"installAll": "Instalar todo",
|
"installAll": "Instalar todo",
|
||||||
"noUpdates": "No se han encontrado actualizaciones recientes disponibles",
|
"noUpdates": "No se han encontrado actualizaciones recientes disponibles",
|
||||||
"promptUpdateBoards": "Actualizaciones disponibles para alguna de tus placas",
|
"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...",
|
"updatingBoards": "Actualizando placas...",
|
||||||
"updatingLibraries": "Actualizando librerías..."
|
"updatingLibraries": "Actualizando bibliotecas..."
|
||||||
},
|
},
|
||||||
"cli-error-parser": {
|
"cli-error-parser": {
|
||||||
"keyboardError": "'Keyboard' no encontrado. ¿Tiene tu proyecto incluida la linea '#include <Keyboard.h>'?",
|
"keyboardError": "'Keyboard' no encontrado. ¿Tiene tu proyecto incluida la linea '#include <Keyboard.h>'?",
|
||||||
@@ -361,7 +364,7 @@
|
|||||||
"automatic": "Automático",
|
"automatic": "Automático",
|
||||||
"board.certificates": "Listado de certificados que pueden ser cargados en las placas",
|
"board.certificates": "Listado de certificados que pueden ser cargados en las placas",
|
||||||
"browse": "Explorar",
|
"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",
|
"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.",
|
"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.enabled": "Verdadero si las funciones de sincronización del sketch están activadas. Verdadero por defecto.",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Verdadero si usuarios deberían ser notificados cuando una encuesta esté disponible. Verdadero es predeterminado.",
|
"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",
|
"unofficialBoardSupport": "Pulsa para listar las URLs de las tarjetas no oficiales",
|
||||||
"upload": "Carga",
|
"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.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",
|
"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.autoScale": "Verdadero si la interfaz de usuario se escala automáticamente con el tamaño de la fuente.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
@@ -497,11 +502,11 @@
|
|||||||
"user": "{0} (user)"
|
"user": "{0} (user)"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"cloud": "Cloud"
|
"cloud": "Nube"
|
||||||
},
|
},
|
||||||
"updateIndexes": {
|
"updateIndexes": {
|
||||||
"updateIndexes": "Actualizar indices",
|
"updateIndexes": "Actualizar índices",
|
||||||
"updateLibraryIndex": "Actualizar Indice de librerías",
|
"updateLibraryIndex": "Actualizar índice de bibliotecas",
|
||||||
"updatePackageIndex": "Actualizar índice de paquete"
|
"updatePackageIndex": "Actualizar índice de paquete"
|
||||||
},
|
},
|
||||||
"upload": {
|
"upload": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "{0} plaka",
|
"board": "{0} plaka",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Plakaren informazioa",
|
"boardInfo": "Plakaren informazioa",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Hautatu plaka bat eta ataka bat programa bat kargatu nahi baduzu.",
|
"configDialog1": "Hautatu plaka bat eta ataka bat programa bat kargatu nahi baduzu.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "{0} ataka",
|
"port": "{0} ataka",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programatzailea",
|
"programmer": "Programatzailea",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Hautatu berriz geroago",
|
"reselectLater": "Hautatu berriz geroago",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Hautatu plaka",
|
"selectBoard": "Hautatu plaka",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Hautatu ataka bat plakaren informazioa eskuratzeko.",
|
"selectPortForInfo": "Hautatu ataka bat plakaren informazioa eskuratzeko.",
|
||||||
"showAllAvailablePorts": "Gaituta dagoenean erabilgarri dauden ataka guztiak erakusten ditu",
|
"showAllAvailablePorts": "Gaituta dagoenean erabilgarri dauden ataka guztiak erakusten ditu",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True by default.",
|
"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",
|
"unofficialBoardSupport": "Egin klik ofizialak ez diren plaken laguntza-URL zerrenda ikusteko",
|
||||||
"upload": "karga",
|
"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.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",
|
"verifyAfterUpload": "Egiaztatu kodea kargatu ondoren",
|
||||||
"window.autoScale": "Egia erabiltzaile interfazea letra-tamainarekin automatikoki eskalatzen bada.",
|
"window.autoScale": "Egia erabiltzaile interfazea letra-tamainarekin automatikoki eskalatzen bada.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "بورد {0}",
|
"board": "بورد {0}",
|
||||||
"boardConfigDialogTitle": "انتخاب یک بورد و پورت دیگر",
|
"boardConfigDialogTitle": "انتخاب یک بورد و پورت دیگر",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "مشخصات برد",
|
"boardInfo": "مشخصات برد",
|
||||||
"boards": "بردها",
|
"boards": "بردها",
|
||||||
"configDialog1": "اگر میخواهید طرحی را آپلود کنید، هم یک تابلو و هم یک پورت انتخاب کنید.",
|
"configDialog1": "اگر میخواهید طرحی را آپلود کنید، هم یک تابلو و هم یک پورت انتخاب کنید.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "پورت {0}",
|
"port": "پورت {0}",
|
||||||
"ports": "پورت ها",
|
"ports": "پورت ها",
|
||||||
"programmer": "Programmer",
|
"programmer": "Programmer",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "بعدا انتخاب کنید",
|
"reselectLater": "بعدا انتخاب کنید",
|
||||||
"revertBoardsConfig": "استفاده از «{0}» پیدا شده در «{1}»",
|
"revertBoardsConfig": "استفاده از «{0}» پیدا شده در «{1}»",
|
||||||
"searchBoard": "جستجوی بورد",
|
"searchBoard": "جستجوی بورد",
|
||||||
"selectBoard": "انتخاب برد",
|
"selectBoard": "انتخاب برد",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "لطفاً یک پورت را برای به دست آوردن اطلاعات هیئت مدیره انتخاب کنید.",
|
"selectPortForInfo": "لطفاً یک پورت را برای به دست آوردن اطلاعات هیئت مدیره انتخاب کنید.",
|
||||||
"showAllAvailablePorts": "نمایش تمام پورت های موجود در صورت فعال بودن",
|
"showAllAvailablePorts": "نمایش تمام پورت های موجود در صورت فعال بودن",
|
||||||
"showAllPorts": "نمایش تمام پورت ها",
|
"showAllPorts": "نمایش تمام پورت ها",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "درست است اگر در صورت وجود نظرسنجی به کاربران اطلاع داده شود. به طور پیش فرض درست است.",
|
"survey.notification": "درست است اگر در صورت وجود نظرسنجی به کاربران اطلاع داده شود. به طور پیش فرض درست است.",
|
||||||
"unofficialBoardSupport": "برای لیستی از آدرس های اینترنتی پشتیبانی هیئت مدیره غیررسمی کلیک کنید",
|
"unofficialBoardSupport": "برای لیستی از آدرس های اینترنتی پشتیبانی هیئت مدیره غیررسمی کلیک کنید",
|
||||||
"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": "برای خروجی آپلود پرمخاطب درست است. به طور پیش فرض نادرست است.",
|
"upload.verbose": "برای خروجی آپلود پرمخاطب درست است. به طور پیش فرض نادرست است.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "تائید کد بعد از بارگذاری",
|
"verifyAfterUpload": "تائید کد بعد از بارگذاری",
|
||||||
"window.autoScale": "اگر رابط کاربری به طور خودکار با اندازه فونت تغییر کند درست است.",
|
"window.autoScale": "اگر رابط کاربری به طور خودکار با اندازه فونت تغییر کند درست است.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programmer",
|
"programmer": "Programmer",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Reselect later",
|
"reselectLater": "Reselect later",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Pumili ng board",
|
"selectBoard": "Pumili ng board",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"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.autoScale": "True kung nais mong awtomatikong mag-adjust ang scaling ng user interface depende sa laki ng font o letra sa screen.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Carte{0}",
|
"board": "Carte{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Information de la carte",
|
"boardInfo": "Information de la carte",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Sélectionnez une carte et un port si vous souhaitez téléverser un croquis.",
|
"configDialog1": "Sélectionnez une carte et un port si vous souhaitez téléverser un croquis.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programmeur",
|
"programmer": "Programmeur",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Re-sélectionner plus tard",
|
"reselectLater": "Re-sélectionner plus tard",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Selectionner une carte",
|
"selectBoard": "Selectionner une carte",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Merci de choisir un port pour obtenir des informations sur la carte.",
|
"selectPortForInfo": "Merci de choisir un port pour obtenir des informations sur la carte.",
|
||||||
"showAllAvailablePorts": "Affiche les ports disponibles quand activer.",
|
"showAllAvailablePorts": "Affiche les ports disponibles quand activer.",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Vrai si les utilisateurs doivent être avertis si une enquête est disponible. Vrai par défaut.",
|
"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",
|
"unofficialBoardSupport": "Cliquer pour la liste non-officielle des URLs des support de cartes",
|
||||||
"upload": "téléverser",
|
"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.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",
|
"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.autoScale": "Vrai si l'interface utilisateur s'ajuste avec la taille de la police.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "לוח{0}",
|
"board": "לוח{0}",
|
||||||
"boardConfigDialogTitle": "יש לבחור לוח ופורט אחר",
|
"boardConfigDialogTitle": "יש לבחור לוח ופורט אחר",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "פרטי הלוח",
|
"boardInfo": "פרטי הלוח",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "נא לבחור סוג לוח ופורט כדי להעלות את הסקיצה.",
|
"configDialog1": "נא לבחור סוג לוח ופורט כדי להעלות את הסקיצה.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "פורט{0}",
|
"port": "פורט{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "תכנת",
|
"programmer": "תכנת",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "בחר מחדש מאוחר יותר",
|
"reselectLater": "בחר מחדש מאוחר יותר",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "חפש לוח",
|
"searchBoard": "חפש לוח",
|
||||||
"selectBoard": "בחר לוח",
|
"selectBoard": "בחר לוח",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "אנא בחר פורט לקבלת מידע אודותיו.",
|
"selectPortForInfo": "אנא בחר פורט לקבלת מידע אודותיו.",
|
||||||
"showAllAvailablePorts": "הצג את כל הפורטים הזמינים כשמופעל",
|
"showAllAvailablePorts": "הצג את כל הפורטים הזמינים כשמופעל",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Alaplap {0}",
|
"board": "Alaplap {0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Alaplapi információk",
|
"boardInfo": "Alaplapi információk",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Válassz ki egy alaplapot és egy portot is - csak ekkor lehetséges a feltöltés. ",
|
"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}",
|
"port": "Port {0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programozó",
|
"programmer": "Programozó",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Később újra válaszd ki",
|
"reselectLater": "Később újra válaszd ki",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Alaplap választás",
|
"selectBoard": "Alaplap választás",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Válassz egy portot az alaplap információinak megtekintéséhez. ",
|
"selectPortForInfo": "Válassz egy portot az alaplap információinak megtekintéséhez. ",
|
||||||
"showAllAvailablePorts": "Elérhető portok mutatása - ha engedélyezett",
|
"showAllAvailablePorts": "Elérhető portok mutatása - ha engedélyezett",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True by default.",
|
"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 ",
|
"unofficialBoardSupport": "Kattints ide a nem hivatalos alaplapok fordítási URL-jeinek listájához ",
|
||||||
"upload": "feltöltés",
|
"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.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",
|
"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.autoScale": "Kipipálva, ha a felhasználói felület automatikusan méreteződik a betűmérettel együtt. ",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programmer",
|
"programmer": "Programmer",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Reselect later",
|
"reselectLater": "Reselect later",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Select Board",
|
"selectBoard": "Select Board",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Papan{0}",
|
"board": "Papan{0}",
|
||||||
"boardConfigDialogTitle": "Pilih Papan dan Port Lain",
|
"boardConfigDialogTitle": "Pilih Papan dan Port Lain",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Informasi Papan",
|
"boardInfo": "Informasi Papan",
|
||||||
"boards": "papan",
|
"boards": "papan",
|
||||||
"configDialog1": "Pilih antara Papan dan Port jika kamu ingin mengunggah sebuah sketsa.",
|
"configDialog1": "Pilih antara Papan dan Port jika kamu ingin mengunggah sebuah sketsa.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "port",
|
"ports": "port",
|
||||||
"programmer": "Pemrogram",
|
"programmer": "Pemrogram",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Pilih ulang nanti",
|
"reselectLater": "Pilih ulang nanti",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Cari papan",
|
"searchBoard": "Cari papan",
|
||||||
"selectBoard": "Pilih Papan",
|
"selectBoard": "Pilih Papan",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Mohon pilih port untuk memperoleh informasi papan.",
|
"selectPortForInfo": "Mohon pilih port untuk memperoleh informasi papan.",
|
||||||
"showAllAvailablePorts": "Tampilkan semua port yang tersedia saat dinyalakan",
|
"showAllAvailablePorts": "Tampilkan semua port yang tersedia saat dinyalakan",
|
||||||
"showAllPorts": "Tampilkan semua port",
|
"showAllPorts": "Tampilkan semua port",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Scheda{0}",
|
"board": "Scheda{0}",
|
||||||
"boardConfigDialogTitle": "Seleziona un'altra scheda e un'altra porta",
|
"boardConfigDialogTitle": "Seleziona un'altra scheda e un'altra porta",
|
||||||
|
"boardDataReloaded": "Dati della scheda ricaricati.",
|
||||||
"boardInfo": "Informazioni sulla scheda",
|
"boardInfo": "Informazioni sulla scheda",
|
||||||
"boards": "schede",
|
"boards": "schede",
|
||||||
"configDialog1": "Seleziona una scheda ed una porta se vuoi caricare uno sketch.",
|
"configDialog1": "Seleziona una scheda ed una porta se vuoi caricare uno sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Porta{0}",
|
"port": "Porta{0}",
|
||||||
"ports": "porte",
|
"ports": "porte",
|
||||||
"programmer": "Programmatore",
|
"programmer": "Programmatore",
|
||||||
|
"reloadBoardData": "Ricarica i dati della scheda",
|
||||||
"reselectLater": "Riselezionare più tardi",
|
"reselectLater": "Riselezionare più tardi",
|
||||||
"revertBoardsConfig": "Usa '{0}' rilevato su '{1}'",
|
"revertBoardsConfig": "Usa '{0}' rilevato su '{1}'",
|
||||||
"searchBoard": "Cerca la scheda",
|
"searchBoard": "Cerca la scheda",
|
||||||
"selectBoard": "Seleziona la scheda",
|
"selectBoard": "Seleziona la scheda",
|
||||||
|
"selectBoardToReload": "Seleziona una scheda.",
|
||||||
"selectPortForInfo": "Selezionare la porta per ottenere info sulla scheda.",
|
"selectPortForInfo": "Selezionare la porta per ottenere info sulla scheda.",
|
||||||
"showAllAvailablePorts": "Quando abilitato, mostra tutte le porte disponibili",
|
"showAllAvailablePorts": "Quando abilitato, mostra tutte le porte disponibili",
|
||||||
"showAllPorts": "Mostra tutte le porte",
|
"showAllPorts": "Mostra tutte le porte",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Vero se gli utenti devono essere avvisati quando è disponibile un sondaggio. Vero per impostazione predefinita.",
|
"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.",
|
"unofficialBoardSupport": "Clicca per ottenere la lista di collegamenti per le schede di terze parti, non schede ufficiali.",
|
||||||
"upload": "caricamento",
|
"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.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",
|
"verifyAfterUpload": "Verifica il codice dopo il caricamento",
|
||||||
"window.autoScale": "Vero se l'interfaccia scala automaticamente in base alla dimensione del font.",
|
"window.autoScale": "Vero se l'interfaccia scala automaticamente in base alla dimensione del font.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "ボード{0}",
|
"board": "ボード{0}",
|
||||||
"boardConfigDialogTitle": "他のボードとポートを選択",
|
"boardConfigDialogTitle": "他のボードとポートを選択",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "ボード情報",
|
"boardInfo": "ボード情報",
|
||||||
"boards": "ボード",
|
"boards": "ボード",
|
||||||
"configDialog1": "スケッチを書き込みたい場合には、ボードとポートの両方を選択してください。",
|
"configDialog1": "スケッチを書き込みたい場合には、ボードとポートの両方を選択してください。",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "ポート{0}",
|
"port": "ポート{0}",
|
||||||
"ports": "ポート",
|
"ports": "ポート",
|
||||||
"programmer": "書き込み装置",
|
"programmer": "書き込み装置",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "後で選択しなおす",
|
"reselectLater": "後で選択しなおす",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "ボードを検索",
|
"searchBoard": "ボードを検索",
|
||||||
"selectBoard": "ボードを選択",
|
"selectBoard": "ボードを選択",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "ボード情報を得るには、ポートを選択してください。",
|
"selectPortForInfo": "ボード情報を得るには、ポートを選択してください。",
|
||||||
"showAllAvailablePorts": "有効な場合、利用可能なすべてのポートを表示",
|
"showAllAvailablePorts": "有効な場合、利用可能なすべてのポートを表示",
|
||||||
"showAllPorts": "全てのポートを表示",
|
"showAllPorts": "全てのポートを表示",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "アンケートが利用可能になったとき、通知を受け取る場合はTrueを指定します。デフォルトではTrue。",
|
"survey.notification": "アンケートが利用可能になったとき、通知を受け取る場合はTrueを指定します。デフォルトではTrue。",
|
||||||
"unofficialBoardSupport": "クリックして非公式ボードをサポートするURLのリストを表示",
|
"unofficialBoardSupport": "クリックして非公式ボードをサポートするURLのリストを表示",
|
||||||
"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を指定。デフォルトではfalse。",
|
"upload.verbose": "書き込み時に詳細な出力を行うにはtrueを指定。デフォルトではfalse。",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "書き込み後にコードを検証する",
|
"verifyAfterUpload": "書き込み後にコードを検証する",
|
||||||
"window.autoScale": "ユーザーインターフェイスをフォントサイズに合わせて自動的に拡大縮小させるにはtrueを指定。",
|
"window.autoScale": "ユーザーインターフェイスをフォントサイズに合わせて自動的に拡大縮小させるにはtrueを指定。",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,7 +13,8 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "보드{0}",
|
"board": "보드{0}",
|
||||||
"boardConfigDialogTitle": "보드 및 포트 선택",
|
"boardConfigDialogTitle": "보드 및 포트 선택",
|
||||||
"boardInfo": "보드정보",
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
|
"boardInfo": "보드 정보",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "스케치를 업로드할 보드 및 포트를 선택",
|
"configDialog1": "스케치를 업로드할 보드 및 포트를 선택",
|
||||||
"configDialog2": "보드를 선택하면 컴파일은 가능하지만, 스케치를 업로드 할 수 없습니다.",
|
"configDialog2": "보드를 선택하면 컴파일은 가능하지만, 스케치를 업로드 할 수 없습니다.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "포트{0}",
|
"port": "포트{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "프로그래머",
|
"programmer": "프로그래머",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "나중에 선택",
|
"reselectLater": "나중에 선택",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "보드 검색",
|
"searchBoard": "보드 검색",
|
||||||
"selectBoard": "보드 선택",
|
"selectBoard": "보드 선택",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "보드 정보를 얻으려면 포트를 선택하십시오.",
|
"selectPortForInfo": "보드 정보를 얻으려면 포트를 선택하십시오.",
|
||||||
"showAllAvailablePorts": "활성화된 사용 가능한 모든 포트를 표시합니다.",
|
"showAllAvailablePorts": "활성화된 사용 가능한 모든 포트를 표시합니다.",
|
||||||
"showAllPorts": "모든 포트 보이기",
|
"showAllPorts": "모든 포트 보이기",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "설문조사를 사용할 수 있는 경우 사용자에게 알림을 보내야 하는 경우 True입니다. 기본은 True입니다.",
|
"survey.notification": "설문조사를 사용할 수 있는 경우 사용자에게 알림을 보내야 하는 경우 True입니다. 기본은 True입니다.",
|
||||||
"unofficialBoardSupport": "비공식 보드 지원 URL 목록을 보려면 클릭하십시오.",
|
"unofficialBoardSupport": "비공식 보드 지원 URL 목록을 보려면 클릭하십시오.",
|
||||||
"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이고 기본적으로 False입니다.",
|
"upload.verbose": "자세한 업로드 출력의 경우 True이고 기본적으로 False입니다.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "업로드 후 코드확인",
|
"verifyAfterUpload": "업로드 후 코드확인",
|
||||||
"window.autoScale": "사용자 인터페이스가 글꼴 크기에 따라 자동으로 조정되는 경우 True입니다.",
|
"window.autoScale": "사용자 인터페이스가 글꼴 크기에 따라 자동으로 조정되는 경우 True입니다.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "ဘုတ်{0}",
|
"board": "ဘုတ်{0}",
|
||||||
"boardConfigDialogTitle": "အခြားဘုတ်နှင့်အပေါက်ကို ရွေးချယ်ပါ",
|
"boardConfigDialogTitle": "အခြားဘုတ်နှင့်အပေါက်ကို ရွေးချယ်ပါ",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "ဘုတ်ဆိုင်ရာအချက်အလက်",
|
"boardInfo": "ဘုတ်ဆိုင်ရာအချက်အလက်",
|
||||||
"boards": "ဘုတ်များ",
|
"boards": "ဘုတ်များ",
|
||||||
"configDialog1": "ကုတ်ဖိုင်တစ်ခုကို upload တင်လိုပါက ဘုတ်နှင့်အပေါက် နှစ်ခုလုံးကို ရွေးပေးပါ။",
|
"configDialog1": "ကုတ်ဖိုင်တစ်ခုကို upload တင်လိုပါက ဘုတ်နှင့်အပေါက် နှစ်ခုလုံးကို ရွေးပေးပါ။",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "အပေါက်{0}",
|
"port": "အပေါက်{0}",
|
||||||
"ports": "အပေါက်များ",
|
"ports": "အပေါက်များ",
|
||||||
"programmer": "ပရိုဂရမ်မာ",
|
"programmer": "ပရိုဂရမ်မာ",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "နောက်မှ ပြန်ရွေးချယ်မည်",
|
"reselectLater": "နောက်မှ ပြန်ရွေးချယ်မည်",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "ဘုတ်ရှာမည်",
|
"searchBoard": "ဘုတ်ရှာမည်",
|
||||||
"selectBoard": "ဘုတ်ရွေးချယ်မည်",
|
"selectBoard": "ဘုတ်ရွေးချယ်မည်",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "လျှပ်စစ်ဘုတ်ဆိုင်ရာအချက်အလက်ရရှိရန် အပေါက်ကို ရွေးချယ်ပါ။",
|
"selectPortForInfo": "လျှပ်စစ်ဘုတ်ဆိုင်ရာအချက်အလက်ရရှိရန် အပေါက်ကို ရွေးချယ်ပါ။",
|
||||||
"showAllAvailablePorts": "အမှန်ခြစ်ထားပါက ရွေးချယ်နိုင်သော အပေါက်များအားလုံးကို ဖော်ပြပေးမည်",
|
"showAllAvailablePorts": "အမှန်ခြစ်ထားပါက ရွေးချယ်နိုင်သော အပေါက်များအားလုံးကို ဖော်ပြပေးမည်",
|
||||||
"showAllPorts": "အပေါက်အားလုံးပြ",
|
"showAllPorts": "အပေါက်အားလုံးပြ",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "စစ်တမ်းကောက်ပါက အသုံးပြုသူကို အသိပေးမည်။ မူရင်းတန်ဖိုး - အမှန်",
|
"survey.notification": "စစ်တမ်းကောက်ပါက အသုံးပြုသူကို အသိပေးမည်။ မူရင်းတန်ဖိုး - အမှန်",
|
||||||
"unofficialBoardSupport": "တရားမဝင်ဘုတ် ထောက်ပံ့မှုURLစာရင်းအတွက် ကလစ်လိုက်ပါ",
|
"unofficialBoardSupport": "တရားမဝင်ဘုတ် ထောက်ပံ့မှုURLစာရင်းအတွက် ကလစ်လိုက်ပါ",
|
||||||
"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": "အပ်လုတ်တင်မှုဆိုင်အချက်အလက်များ အသေးစိတ်ဖော်ပြမည်။ မူရင်းတန်ဖိုး - အမှား",
|
"upload.verbose": "အပ်လုတ်တင်မှုဆိုင်အချက်အလက်များ အသေးစိတ်ဖော်ပြမည်။ မူရင်းတန်ဖိုး - အမှား",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "အပ်လုတ်တင်ပြီးလျှင်ကုတ်ကိုစစ်ဆေးပါ",
|
"verifyAfterUpload": "အပ်လုတ်တင်ပြီးလျှင်ကုတ်ကိုစစ်ဆေးပါ",
|
||||||
"window.autoScale": "အမှန်ဖြစ်နေပါက အသုံးပြုသူအင်တာဖေ့သည် ဖောင့်အရွယ်အစားနှင့်အတူ အလိုလိုချိန်ညှိမည်။",
|
"window.autoScale": "အမှန်ဖြစ်နေပါက အသုံးပြုသူအင်တာဖေ့သည် ဖောင့်အရွယ်အစားနှင့်အတူ အလိုလိုချိန်ညှိမည်။",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "बोर्ड {0}",
|
"board": "बोर्ड {0}",
|
||||||
"boardConfigDialogTitle": "अन्य बोर्ड र पोर्ट चयन गर्नुहोस् |",
|
"boardConfigDialogTitle": "अन्य बोर्ड र पोर्ट चयन गर्नुहोस् |",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "बोर्डको जानकारी",
|
"boardInfo": "बोर्डको जानकारी",
|
||||||
"boards": "बोर्डहरू",
|
"boards": "बोर्डहरू",
|
||||||
"configDialog1": "यदि तपाइँ स्केच अपलोड गर्न चाहनुहुन्छ भने बोर्ड र पोर्ट दुवै चयन गर्नुहोस्।",
|
"configDialog1": "यदि तपाइँ स्केच अपलोड गर्न चाहनुहुन्छ भने बोर्ड र पोर्ट दुवै चयन गर्नुहोस्।",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "पोर्ट {0}",
|
"port": "पोर्ट {0}",
|
||||||
"ports": "पोर्टहरू",
|
"ports": "पोर्टहरू",
|
||||||
"programmer": "प्रोग्रामर",
|
"programmer": "प्रोग्रामर",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "पुन: चयन गर्नुहोस्",
|
"reselectLater": "पुन: चयन गर्नुहोस्",
|
||||||
"revertBoardsConfig": "'{1}' मा फेला परेको '{0}' प्रयोग गर्नुहोस्",
|
"revertBoardsConfig": "'{1}' मा फेला परेको '{0}' प्रयोग गर्नुहोस्",
|
||||||
"searchBoard": "बोर्ड खोज्नुहोस। ",
|
"searchBoard": "बोर्ड खोज्नुहोस। ",
|
||||||
"selectBoard": "बोर्ड छान्नुहोस । ",
|
"selectBoard": "बोर्ड छान्नुहोस । ",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "बोर्ड जानकारी प्राप्त गर्न पोर्ट चयन गर्नुहोस्।",
|
"selectPortForInfo": "बोर्ड जानकारी प्राप्त गर्न पोर्ट चयन गर्नुहोस्।",
|
||||||
"showAllAvailablePorts": "अनुमति हुँदा सबै उपलब्ध पोर्टहरू देखाउँछ।",
|
"showAllAvailablePorts": "अनुमति हुँदा सबै उपलब्ध पोर्टहरू देखाउँछ।",
|
||||||
"showAllPorts": "पोर्टहरु हेर्नुहोस |",
|
"showAllPorts": "पोर्टहरु हेर्नुहोस |",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "यदि सर्वेक्षण उपलब्ध छ भने प्रयोगकर्ताहरूलाई सूचित गरिनुपर्छ भने सही संकेत गर्नुहोस्। यो पूर्वनिर्धारित रूपमा सही छ।",
|
"survey.notification": "यदि सर्वेक्षण उपलब्ध छ भने प्रयोगकर्ताहरूलाई सूचित गरिनुपर्छ भने सही संकेत गर्नुहोस्। यो पूर्वनिर्धारित रूपमा सही छ।",
|
||||||
"unofficialBoardSupport": "अनौपचारिक बोर्ड समर्थन गर्ने URL को सूचीको लागि क्लिक गर्नुहोस्",
|
"unofficialBoardSupport": "अनौपचारिक बोर्ड समर्थन गर्ने URL को सूचीको लागि क्लिक गर्नुहोस्",
|
||||||
"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": "वर्बोज अपलोड आउटपुट को लागी सही संकेत गर्नुहोस्। यो पूर्वनिर्धारित रूपमा असक्षम छ। ",
|
"upload.verbose": "वर्बोज अपलोड आउटपुट को लागी सही संकेत गर्नुहोस्। यो पूर्वनिर्धारित रूपमा असक्षम छ। ",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "कोड अपलोड गरेपछि प्रमाणित गर्नुहोस्",
|
"verifyAfterUpload": "कोड अपलोड गरेपछि प्रमाणित गर्नुहोस्",
|
||||||
"window.autoScale": "प्रयोगकर्ता इन्टरफेसले स्वचालित रूपमा फन्ट साइजसँग मापन गरेमा सही संकेत गर्नुहोस्।",
|
"window.autoScale": "प्रयोगकर्ता इन्टरफेसले स्वचालित रूपमा फन्ट साइजसँग मापन गरेमा सही संकेत गर्नुहोस्।",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Bord{0}",
|
"board": "Bord{0}",
|
||||||
"boardConfigDialogTitle": "Selecteer Ander Bord en Poort",
|
"boardConfigDialogTitle": "Selecteer Ander Bord en Poort",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Bord Informatie",
|
"boardInfo": "Bord Informatie",
|
||||||
"boards": "borden",
|
"boards": "borden",
|
||||||
"configDialog1": "Selecteer een Bord en een Poort als je een schets wilt opladen.",
|
"configDialog1": "Selecteer een Bord en een Poort als je een schets wilt opladen.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Poort{0}",
|
"port": "Poort{0}",
|
||||||
"ports": "poorten",
|
"ports": "poorten",
|
||||||
"programmer": "Programmeerapparaat",
|
"programmer": "Programmeerapparaat",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Later opnieuw selecteren",
|
"reselectLater": "Later opnieuw selecteren",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Bord zoeken",
|
"searchBoard": "Bord zoeken",
|
||||||
"selectBoard": "Bord selecteren",
|
"selectBoard": "Bord selecteren",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Selecteer een poort om bord informatie te bekomen.",
|
"selectPortForInfo": "Selecteer een poort om bord informatie te bekomen.",
|
||||||
"showAllAvailablePorts": "Toont alle beschikbare poorten indien ingeschakeld",
|
"showAllAvailablePorts": "Toont alle beschikbare poorten indien ingeschakeld",
|
||||||
"showAllPorts": "Toon alle poorten",
|
"showAllPorts": "Toon alle poorten",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Waar als gebruikers een melding moeten krijgen als er een enquête beschikbaar is. Standaard is dit waar.",
|
"survey.notification": "Waar als gebruikers een melding moeten krijgen als er een enquête beschikbaar is. Standaard is dit waar.",
|
||||||
"unofficialBoardSupport": "Klik voor een lijst met onofficiële borden ondersteuning URL's",
|
"unofficialBoardSupport": "Klik voor een lijst met onofficiële borden ondersteuning URL's",
|
||||||
"upload": "uploaden",
|
"upload": "uploaden",
|
||||||
|
"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": "Waar voor uitgebreide uploaduitvoer. Standaard onwaar.",
|
"upload.verbose": "Waar voor uitgebreide uploaduitvoer. Standaard onwaar.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "Verifieer de code na het uploaden",
|
"verifyAfterUpload": "Verifieer de code na het uploaden",
|
||||||
"window.autoScale": "Waar als de gebruikersinterface automatisch wordt geschaald met de lettergrootte.",
|
"window.autoScale": "Waar als de gebruikersinterface automatisch wordt geschaald met de lettergrootte.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Kort{0}",
|
"board": "Kort{0}",
|
||||||
"boardConfigDialogTitle": "Velg et annet kort og port",
|
"boardConfigDialogTitle": "Velg et annet kort og port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Informasjon om kort",
|
"boardInfo": "Informasjon om kort",
|
||||||
"boards": "Kort",
|
"boards": "Kort",
|
||||||
"configDialog1": "Velg kort og portnummer for å laste opp skissen",
|
"configDialog1": "Velg kort og portnummer for å laste opp skissen",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port {0}",
|
"port": "Port {0}",
|
||||||
"ports": "porter",
|
"ports": "porter",
|
||||||
"programmer": "Programmer",
|
"programmer": "Programmer",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Velg igjen senere",
|
"reselectLater": "Velg igjen senere",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Søk etter kort",
|
"searchBoard": "Søk etter kort",
|
||||||
"selectBoard": "Velg kort",
|
"selectBoard": "Velg kort",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Velg en port for å få info om kort",
|
"selectPortForInfo": "Velg en port for å få info om kort",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Vis alle porter",
|
"showAllPorts": "Vis alle porter",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Płytka{0}",
|
"board": "Płytka{0}",
|
||||||
"boardConfigDialogTitle": "Wybierz inną płytkę i port",
|
"boardConfigDialogTitle": "Wybierz inną płytkę i port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Informacje o płytce",
|
"boardInfo": "Informacje o płytce",
|
||||||
"boards": "Płytki",
|
"boards": "Płytki",
|
||||||
"configDialog1": "Wybierz płytkę oraz port, aby wgrać szkic.",
|
"configDialog1": "Wybierz płytkę oraz port, aby wgrać szkic.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "Porty",
|
"ports": "Porty",
|
||||||
"programmer": "Programator",
|
"programmer": "Programator",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Wybierz ponownie później",
|
"reselectLater": "Wybierz ponownie później",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Szukaj płytki",
|
"searchBoard": "Szukaj płytki",
|
||||||
"selectBoard": "Wybierz płytkę",
|
"selectBoard": "Wybierz płytkę",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Wybierz port, aby uzyskać informacje o płytce.",
|
"selectPortForInfo": "Wybierz port, aby uzyskać informacje o płytce.",
|
||||||
"showAllAvailablePorts": "Po włączeniu pokazuje wszystkie dostępne porty",
|
"showAllAvailablePorts": "Po włączeniu pokazuje wszystkie dostępne porty",
|
||||||
"showAllPorts": "Pokaż wszystkie dostępne porty",
|
"showAllPorts": "Pokaż wszystkie dostępne porty",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Prawdziwy, jeśli użytkownicy powinni być powiadamiani o dostępności ankiety. Domyślnie prawdwdziwy.",
|
"survey.notification": "Prawdziwy, jeśli użytkownicy powinni być powiadamiani o dostępności ankiety. Domyślnie prawdwdziwy.",
|
||||||
"unofficialBoardSupport": "Kliknij, aby przejść do listy linków nieoficjalnego wsparcia dla płytek.",
|
"unofficialBoardSupport": "Kliknij, aby przejść do listy linków nieoficjalnego wsparcia dla płytek.",
|
||||||
"upload": "przesyłanie",
|
"upload": "przesyłanie",
|
||||||
|
"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": "Prawda, aby pokazywać szczegółowe informacje podczas wgrywania. Fałsz jest wartością domyślną.",
|
"upload.verbose": "Prawda, aby pokazywać szczegółowe informacje podczas wgrywania. Fałsz jest wartością domyślną.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "Weryfikuj kod po przesłaniu",
|
"verifyAfterUpload": "Weryfikuj kod po przesłaniu",
|
||||||
"window.autoScale": "Prawda, jeśli interfejs użytkownika skaluje się automatycznie z rozmiarem czcionki.",
|
"window.autoScale": "Prawda, jeśli interfejs użytkownika skaluje się automatycznie z rozmiarem czcionki.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Placa{0}",
|
"board": "Placa{0}",
|
||||||
"boardConfigDialogTitle": "Selecionar Outra Placa e Porta",
|
"boardConfigDialogTitle": "Selecionar Outra Placa e Porta",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Informações da Placa",
|
"boardInfo": "Informações da Placa",
|
||||||
"boards": "placas",
|
"boards": "placas",
|
||||||
"configDialog1": "Selecione uma placa e uma porta se quiser fazer o upload de um sketch.",
|
"configDialog1": "Selecione uma placa e uma porta se quiser fazer o upload de um sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Porta{0}",
|
"port": "Porta{0}",
|
||||||
"ports": "portas",
|
"ports": "portas",
|
||||||
"programmer": "Programador/Gravador",
|
"programmer": "Programador/Gravador",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Selecionar novamente mais tarde",
|
"reselectLater": "Selecionar novamente mais tarde",
|
||||||
"revertBoardsConfig": "Uso '{0}' descoberto em '{1}'",
|
"revertBoardsConfig": "Uso '{0}' descoberto em '{1}'",
|
||||||
"searchBoard": "Procurar placa",
|
"searchBoard": "Procurar placa",
|
||||||
"selectBoard": "Selecionar Placa",
|
"selectBoard": "Selecionar Placa",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Selecione uma porta para obter informações sobre a placa.",
|
"selectPortForInfo": "Selecione uma porta para obter informações sobre a placa.",
|
||||||
"showAllAvailablePorts": "Mostrar todas as portas disponíveis quando habilitado",
|
"showAllAvailablePorts": "Mostrar todas as portas disponíveis quando habilitado",
|
||||||
"showAllPorts": "Mostrar todas as portas",
|
"showAllPorts": "Mostrar todas as portas",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Verdadeiro se o usuário deve ser notificado se uma pesquisa estiver disponível. Verdadeiro por padrão",
|
"survey.notification": "Verdadeiro se o usuário deve ser notificado se uma pesquisa estiver disponível. Verdadeiro por padrão",
|
||||||
"unofficialBoardSupport": "Clique para obter uma lista de URLs de placas não oficiais suportadas",
|
"unofficialBoardSupport": "Clique para obter uma lista de URLs de placas não oficiais suportadas",
|
||||||
"upload": "enviar",
|
"upload": "enviar",
|
||||||
|
"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": "Verdadeiro para saída de upload detalhada. Falsa é padrão.",
|
"upload.verbose": "Verdadeiro para saída de upload detalhada. Falsa é padrão.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "Verificar o código após enviar",
|
"verifyAfterUpload": "Verificar o código após enviar",
|
||||||
"window.autoScale": "Verdadeiro se a interface do usuário for dimensionada automaticamente com o tamanho da fonte.",
|
"window.autoScale": "Verdadeiro se a interface do usuário for dimensionada automaticamente com o tamanho da fonte.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Portul{0}",
|
"port": "Portul{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Programator",
|
"programmer": "Programator",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Re-selectează mai târziu",
|
"reselectLater": "Re-selectează mai târziu",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Selectează Placa",
|
"selectBoard": "Selectează Placa",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "încarcă",
|
"upload": "încarcă",
|
||||||
|
"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.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": "Verifică codul după încarcare",
|
"verifyAfterUpload": "Verifică codul după încarcare",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Плата{0}",
|
"board": "Плата{0}",
|
||||||
"boardConfigDialogTitle": "Выберите другую плату и порт",
|
"boardConfigDialogTitle": "Выберите другую плату и порт",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Информация о плате",
|
"boardInfo": "Информация о плате",
|
||||||
"boards": "платы",
|
"boards": "платы",
|
||||||
"configDialog1": "Выберите плату и порт, если Вы хотите загрузить скетч в плату.",
|
"configDialog1": "Выберите плату и порт, если Вы хотите загрузить скетч в плату.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Порт{0}",
|
"port": "Порт{0}",
|
||||||
"ports": "порты",
|
"ports": "порты",
|
||||||
"programmer": "Программатор",
|
"programmer": "Программатор",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Перевыбрать позже",
|
"reselectLater": "Перевыбрать позже",
|
||||||
"revertBoardsConfig": "Используйте '{0}', обнаруженный на '{1}'",
|
"revertBoardsConfig": "Используйте '{0}', обнаруженный на '{1}'",
|
||||||
"searchBoard": "Поиск платы",
|
"searchBoard": "Поиск платы",
|
||||||
"selectBoard": "Выбор платы",
|
"selectBoard": "Выбор платы",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Пожалуйста, выберите порт в меню инструментов для получения информации с платы.",
|
"selectPortForInfo": "Пожалуйста, выберите порт в меню инструментов для получения информации с платы.",
|
||||||
"showAllAvailablePorts": "Показать все доступные порты при включении",
|
"showAllAvailablePorts": "Показать все доступные порты при включении",
|
||||||
"showAllPorts": "Показать все порты",
|
"showAllPorts": "Показать все порты",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Включите, если пользователи должны получать уведомления, когда появится новый опрос. Включено по умолчанию.",
|
"survey.notification": "Включите, если пользователи должны получать уведомления, когда появится новый опрос. Включено по умолчанию.",
|
||||||
"unofficialBoardSupport": "Список URL-адресов поддержки неофициальных плат",
|
"unofficialBoardSupport": "Список URL-адресов поддержки неофициальных плат",
|
||||||
"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 - подробный вывод при загрузке скетча на плату. По умолчанию - false.",
|
"upload.verbose": "True - подробный вывод при загрузке скетча на плату. По умолчанию - false.",
|
||||||
|
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
|
||||||
"verifyAfterUpload": "Проверять содержимое памяти платы после загрузки",
|
"verifyAfterUpload": "Проверять содержимое памяти платы после загрузки",
|
||||||
"window.autoScale": "True, если пользовательский интерфейс автоматически масштабируется в зависимости от размера шрифта.",
|
"window.autoScale": "True, если пользовательский интерфейс автоматически масштабируется в зависимости от размера шрифта.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Board{0}",
|
"board": "Board{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Board Info",
|
"boardInfo": "Board Info",
|
||||||
"boards": "පුවරු",
|
"boards": "පුවරු",
|
||||||
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "ක්රමලේඛක",
|
"programmer": "ක්රමලේඛක",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "පසුව තෝරන්න",
|
"reselectLater": "පසුව තෝරන්න",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "පුවරුව සොයන්න",
|
"searchBoard": "පුවරුව සොයන්න",
|
||||||
"selectBoard": "පුවරුව තෝරන්න",
|
"selectBoard": "පුවරුව තෝරන්න",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Please select a port to obtain board info.",
|
"selectPortForInfo": "Please select a port to obtain board info.",
|
||||||
"showAllAvailablePorts": "Shows all available ports when enabled",
|
"showAllAvailablePorts": "Shows all available ports when enabled",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
557
i18n/sk.json
Normal file
557
i18n/sk.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Плоча{0}",
|
"board": "Плоча{0}",
|
||||||
"boardConfigDialogTitle": "Select Other Board and Port",
|
"boardConfigDialogTitle": "Select Other Board and Port",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "Информације о плочи",
|
"boardInfo": "Информације о плочи",
|
||||||
"boards": "boards",
|
"boards": "boards",
|
||||||
"configDialog1": "Одабери и плочу и порт ако желиш да спустиш рад.",
|
"configDialog1": "Одабери и плочу и порт ако желиш да спустиш рад.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Порт{0}",
|
"port": "Порт{0}",
|
||||||
"ports": "ports",
|
"ports": "ports",
|
||||||
"programmer": "Програмер",
|
"programmer": "Програмер",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "Одабери поново касније",
|
"reselectLater": "Одабери поново касније",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "Search board",
|
"searchBoard": "Search board",
|
||||||
"selectBoard": "Одабери плочу",
|
"selectBoard": "Одабери плочу",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "Одабери порт да добијеш информације о плочи",
|
"selectPortForInfo": "Одабери порт да добијеш информације о плочи",
|
||||||
"showAllAvailablePorts": "Приказује све доступне портове када је укључено",
|
"showAllAvailablePorts": "Приказује све доступне портове када је укључено",
|
||||||
"showAllPorts": "Show all ports",
|
"showAllPorts": "Show all ports",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"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.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": "Провјери код након спуштања",
|
"verifyAfterUpload": "Провјери код након спуштања",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "บอร์ด{0}",
|
"board": "บอร์ด{0}",
|
||||||
"boardConfigDialogTitle": "เลือกบอร์ดและพอร์ตอื่นๆ",
|
"boardConfigDialogTitle": "เลือกบอร์ดและพอร์ตอื่นๆ",
|
||||||
|
"boardDataReloaded": "Board data reloaded.",
|
||||||
"boardInfo": "ข้อมูลบอร์ด",
|
"boardInfo": "ข้อมูลบอร์ด",
|
||||||
"boards": "บอร์ด",
|
"boards": "บอร์ด",
|
||||||
"configDialog1": "เลือกบอร์ดและพอร์ตที่คุณต้องการอัปโหลดโปรแกรมของคุณ",
|
"configDialog1": "เลือกบอร์ดและพอร์ตที่คุณต้องการอัปโหลดโปรแกรมของคุณ",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "พอร์ต {0}",
|
"port": "พอร์ต {0}",
|
||||||
"ports": "พอร์ต",
|
"ports": "พอร์ต",
|
||||||
"programmer": "เครื่องโปรแกรม",
|
"programmer": "เครื่องโปรแกรม",
|
||||||
|
"reloadBoardData": "Reload Board Data",
|
||||||
"reselectLater": "เลือกใหม่ในภายหลัง",
|
"reselectLater": "เลือกใหม่ในภายหลัง",
|
||||||
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
|
||||||
"searchBoard": "ค้นหาบอร์ด",
|
"searchBoard": "ค้นหาบอร์ด",
|
||||||
"selectBoard": "เลือกบอร์ด",
|
"selectBoard": "เลือกบอร์ด",
|
||||||
|
"selectBoardToReload": "Please select a board first.",
|
||||||
"selectPortForInfo": "กรุณาเลือกพอร์ตเพื่อดึงข้อมูลของบอร์ด",
|
"selectPortForInfo": "กรุณาเลือกพอร์ตเพื่อดึงข้อมูลของบอร์ด",
|
||||||
"showAllAvailablePorts": "แสดงพอร์ตทั้งหมดที่มีอยู่เมื่อเลือก",
|
"showAllAvailablePorts": "แสดงพอร์ตทั้งหมดที่มีอยู่เมื่อเลือก",
|
||||||
"showAllPorts": "แสดงพอร์ตทั้งหมด",
|
"showAllPorts": "แสดงพอร์ตทั้งหมด",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "True if users should be notified if a survey is available. True 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",
|
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
|
||||||
"upload": "upload",
|
"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.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",
|
"verifyAfterUpload": "Verify code after upload",
|
||||||
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
"window.autoScale": "True if the user interface automatically scales with the font size.",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
"board": {
|
"board": {
|
||||||
"board": "Kart{0}",
|
"board": "Kart{0}",
|
||||||
"boardConfigDialogTitle": "Başka Kart ve Port Seç",
|
"boardConfigDialogTitle": "Başka Kart ve Port Seç",
|
||||||
|
"boardDataReloaded": "Kart bilgisi yeniden yüklendi.",
|
||||||
"boardInfo": "Kart Bilgisi",
|
"boardInfo": "Kart Bilgisi",
|
||||||
"boards": "kartlar",
|
"boards": "kartlar",
|
||||||
"configDialog1": "Bir eskiz yüklemek istiyorsanız Kart ve Port seçmelisiniz.",
|
"configDialog1": "Bir eskiz yüklemek istiyorsanız Kart ve Port seçmelisiniz.",
|
||||||
@@ -31,10 +32,12 @@
|
|||||||
"port": "Port{0}",
|
"port": "Port{0}",
|
||||||
"ports": "portlar",
|
"ports": "portlar",
|
||||||
"programmer": "Programlayıcı",
|
"programmer": "Programlayıcı",
|
||||||
|
"reloadBoardData": "Kart Bilgisini Yeniden Yükle",
|
||||||
"reselectLater": "Daha sonra tekrar seç",
|
"reselectLater": "Daha sonra tekrar seç",
|
||||||
"revertBoardsConfig": " '{1}''da bulunan '{0}''i kullan",
|
"revertBoardsConfig": " '{1}''da bulunan '{0}''i kullan",
|
||||||
"searchBoard": "Kart ara",
|
"searchBoard": "Kart ara",
|
||||||
"selectBoard": "Kart Seç",
|
"selectBoard": "Kart Seç",
|
||||||
|
"selectBoardToReload": "Lütfen önce bir kart seçin.",
|
||||||
"selectPortForInfo": "Kart bilgisi almak için lütfen bir port seçin.",
|
"selectPortForInfo": "Kart bilgisi almak için lütfen bir port seçin.",
|
||||||
"showAllAvailablePorts": "Etkinleştirildiğinde tüm mevcut portları görüntüler",
|
"showAllAvailablePorts": "Etkinleştirildiğinde tüm mevcut portları görüntüler",
|
||||||
"showAllPorts": "Tüm portları göster",
|
"showAllPorts": "Tüm portları göster",
|
||||||
@@ -412,7 +415,9 @@
|
|||||||
"survey.notification": "Bir anket bulunduğunda kullanıcılara gösterilecekse açın. Varsayılan olarak açıktır.",
|
"survey.notification": "Bir anket bulunduğunda kullanıcılara gösterilecekse açın. Varsayılan olarak açıktır.",
|
||||||
"unofficialBoardSupport": "Desteklenmeyen kart destek URL'leri listesi için tıklayın",
|
"unofficialBoardSupport": "Desteklenmeyen kart destek URL'leri listesi için tıklayın",
|
||||||
"upload": "yükle",
|
"upload": "yükle",
|
||||||
|
"upload.autoVerify": "Açıldığında IDE yükleme öncesinde kodu otomatik olarak doğrular. Varsayılan olarak açıktır. Bu değer kapalı olduğunda, IDE ikili dosyayı karta yüklemeden önce tekrar derlemez. Bu ayarı sadece gerçekten ne yaptığınızı biliyor olduğunuz durumlarda kapatmanız önerilir.",
|
||||||
"upload.verbose": " Ayrıntılı yükleme çıktısı için açın. Varsayılan: Kapalı",
|
"upload.verbose": " Ayrıntılı yükleme çıktısı için açın. Varsayılan: Kapalı",
|
||||||
|
"upload.verify": "Yüklemeden sonra, kart üzerindeki belleğin içeriğini yüklenen ikili dosya ile doğrula.",
|
||||||
"verifyAfterUpload": "Yüklemeden sonra kodu doğrula",
|
"verifyAfterUpload": "Yüklemeden sonra kodu doğrula",
|
||||||
"window.autoScale": "Kullanıcı arayüzü yazı tipi boyutu ile otomatik olarak ölçeklenecekse açın",
|
"window.autoScale": "Kullanıcı arayüzü yazı tipi boyutu ile otomatik olarak ölçeklenecekse açın",
|
||||||
"window.zoomLevel": {
|
"window.zoomLevel": {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user