* fix(plugin): decouple state update from the LS
To enhance the reliability of Arduino IDE extensions, the update
process for `ArduinoState` has been modified to ensure independence
from the language server's availability. This change addresses issues
caused by `compileSummary` being `undefined` due to potential startup
failures of the Arduino Language Server, as noted in
https://github.com/dankeboy36/esp-exception-decoder/issues/28#issuecomment-2681800772.
The `compile` command now resolves with a `CompileSummary` rather than
`void`, facilitating a more reliable way for extensions to access
necessary data. Furthermore, the command has been adjusted to allow
resolution with `undefined` when the compiled data is partial.
By transitioning to direct usage of the resolved compile value for
state updates, the reliance on executed commands for extensions is
eliminated. This update also moves the VSIX command execution to the
frontend without altering existing IDE behavior.
Closesarduino/arduino-ide#2642
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* fix: install missing libx11-dev and libxkbfile-dev
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* fix: pick better GH step name
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* fix: install the required dependencies on Linux
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* fix(revert): do not manually install deps on Linux
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* chore: pin `ubuntu-22.04` for linux actions
* fix: restore accidentally removed dispose on finally
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* fix(test): align mock naming 💄
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* fix: let the ino contribution notify the LS
+ event emitter dispatches the new state.
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* fix(test): emit the new compiler summary state
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
* chore(revert): unpin linux version, use latest
revert of b11bde1c47
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
---------
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
Co-authored-by: Giacomo Cusinato <7659518+giacomocusinato@users.noreply.github.com>
- Update a shared state on fqbn, port, sketch path, and etc. changes.
VS Code extensions can access it and listen on changes.
- Force VISX activation order: API VSIX starts first.
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
- IDE2 can start if the package index download fails. Closes#1084
- Split the lib and platform index update. Closes#1156
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
* backend structure WIP
* Scaffold interfaces and classes for pluggable monitors
* Implement MonitorService to handle pluggable monitor lifetime
* Rename WebSocketService to WebSocketProvider and uninjected it
* Moved some interfaces
* Changed upload settings
* Enhance MonitorManager APIs
* Fixed WebSocketChange event signature
* Add monitor proxy functions for the frontend
* Moved settings to MonitorService
* Remove several unnecessary serial monitor classes
* Changed how connection is handled on upload
* Proxied more monitor methods to frontend
* WebSocketProvider is not injectable anymore
* Add generic monitor settings storaging
* More serial classes removal
* Remove unused file
* Changed plotter contribution to use new manager proxy
* Changed MonitorWidget and children to use new monitor proxy
* Updated MonitorWidget to use new monitor proxy
* Fix backend logger bindings
* Delete unnecessary Symbol
* coreClientProvider is now set when constructing MonitorService
* Add missing binding
* Fix `MonitorManagerProxy` DI issue
* fix monitor connection
* delete duplex when connection is closed
* update arduino-cli to 0.22.0
* fix upload when monitor is open
* add MonitorSettingsProvider interface
* monitor settings provider stub
* updated pseudo code
* refactor monitor settings interfaces
* monitor service provider singleton
* add unit tests
* change MonitorService providers to injectable deps
* fix monitor settings client communication
* refactor monitor commands protocol
* use monitor settings provider properly
* add settings to monitor model
* add settings to monitor model
* reset serial monitor when port changes
* fix serial plotter opening
* refine monitor connection settings
* fix hanging web socket connections
* add serial plotter reset command
* send port to web socket clients
* monitor service wait for success serial port open
* fix reset loop
* update serial plotter version
* update arduino-cli version to 0.23.0-rc1 and regenerate grpc protocol
* remove useless plotter protocol file
* localize web socket errors
* clean-up code
* update translation file
* Fix duplicated editor tabs (#1012)
* Save dialog for closing temporary sketch and unsaved files (#893)
* Use normal `OnWillStop` event
* Align `CLOSE` command to rest of app
* Fixed FS path vs encoded URL comparision when handling stop request.
Ref: https://github.com/eclipse-theia/theia/issues/11226
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
* Fixed the translations.
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
* Fixed the translations again.
Removed `electron` from the `nls-extract`. It does not contain app code.
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
* Aligned the stop handler code to Theia.
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
Co-authored-by: Akos Kitta <a.kitta@arduino.cc>
* fix serial monitor send line ending
* refactor monitor-service poll for test/readability
* localize web socket errors
* update translation file
* Fix duplicated editor tabs (#1012)
* i18n:check rerun
* Speed up IDE startup time.
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
* override coreClientProvider in monitor-service
* cleanup merged code
Co-authored-by: Francesco Stasi <f.stasi@me.com>
Co-authored-by: Silvano Cerza <silvanocerza@gmail.com>
Co-authored-by: Mark Sujew <mark.sujew@typefox.io>
Co-authored-by: David Simpson <45690499+davegarthsimpson@users.noreply.github.com>
Co-authored-by: Akos Kitta <a.kitta@arduino.cc>
* Rebuild gRPC protocol interfaces
* Implement methods to get user fields for board/port combination
* Implement dialog to input board user fields
* Add configure and upload step when uploading to board requiring user fields
* Disable Sketch > Configure and Upload menu if board doesn't support user fields
* Fix serial upload not working with all boards
* Update i18n source file
* fix user fields UI
* regenerate cli protocol
* fix localisation
* check if user fields are empty
Co-authored-by: Alberto Iannaccone <a.iannaccone@arduino.cc>
* spawn new window where to instantiate serial plotter app
* initialize serial monito web app
* connect serial plotter app with websocket
* use npm serial-plotter package
* refactor monitor connection and fix some connection issues
* fix clearConsole + refactor monitor connection
* add serial unit tests
* refactoring and cleaning code
* integrate cli 0.19.0
* Update CLI version used to fix crash on lib/core install/uninstall
* Update CLI version
* Update CLI version
* update cli version
Co-authored-by: Silvano Cerza <silvanocerza@gmail.com>
Made the port/fqbn/programmer optional for upload, verify,
and burn bootloader. From now on, the IDE does not warn the user before
performing the desired CLI command.
Closesarduino/arduino-pro-ide#364
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
When uploading using a programmer, the port is ignored by the CLI.
Also removed `programmer` from compile request [arduino/arduino-cli#861]
Signed-off-by: Akos Kitta <kittaakos@typefox.io>