arduino-ide/arduino-ide-extension
Silvano Cerza 74bfdc4c56
Rework listing of discovered ports (#614)
* Removed Protocol type

* Reworked function that groups ports by protocol

* Remove useless protocol check in Port sameAs function

* Reworked port selection menu ordering

Now ports are shown in this order:
1. Serial with recognized boards
2. Serial with unrecognized boards
3. Network with recognized boards
4. Network with unrecognized boards
5. Other protocols with recognized boards
6. Other protocols with unrecognized boards

* Fix ports shown multiple times in menu

* Reworked board selection dropdown ordering

Ordering is now:
1. Serial with recognized boards
2. Serial with guessed boards
3. Serial with incomplete boards
4. Network with recognized boards
5. Other protocols with recognized boards

* Localize some strings

* Fix bug selecting board in boards selector dropdown

* Reworked board selection dialog ordering

* Fix Tools > Port menu not refreshing

* Move Select other board button to bottom of Board selector dropdown and change its style

* Updated arduino-cli to 0.20.0 and generated protocol files
2021-11-24 15:15:40 +01:00
..
2021-11-23 17:18:20 +00:00

Arduino IDE Extension

Arduino IDE is based on Theia, and most of its IDE features, UIs and customizations are implemented in this Theia extension.

IDE Services

IDE services typically have a backend part in src/node/ and a front-end part in src/browser/.

Boards Service

The Boards Service continuously checks the computer's ports, in order to detect when you connect or disconnect an Arduino board.

The Boards Manager lists all the known board types, and allows downloading new cores to get additional board types.

Core Service

The Core Service is responsible for building your sketches and uploading them to a board.

Serial Service

The Serial Service allows getting information back from sketches running on your Arduino boards.

Config Service

The Config Service knows about your system, like for example the default sketch locations.

"arduino" configuration in the package.json:

  • "cli":
    • "version" type string | { owner: string, repo: string, commitish?: string }: if the type is a string and is a valid semver, it will get the corresponding released CLI. If the type is string and is a date in YYYYMMDD format, it will get a nightly CLI. If the type is an object, a CLI, build from the sources in the owner/repo will be used. If commitish is not defined, the HEAD of the default branch will be used. In any other cases an error is thrown.

Rebuild gRPC protocol interfaces

  • Some CLI updates can bring changes to the gRPC interfaces, as the API might change. gRPC interfaces can be updated running the command yarn --cwd arduino-ide-extension generate-protocol

Customize Icons

ArduinoIde uses a customized version of FontAwesome. In order to update/replace icons follow the following steps:

  • import the file arduino-icons.json in Icomoon
  • load it
  • edit the icons as needed
  • !! download the new arduino-icons.json file and put it in this repo
  • Click on "Generate Font" in Icomoon, then download
  • place the updated fonts in the src/style/fonts directory