arduino / arduino-ide

Arduino IDE 2.x
https://www.arduino.cc/en/software
GNU Affero General Public License v3.0
2.32k stars 394 forks source link

Missing support for external tools / plugins #58

Open szerwi opened 3 years ago

szerwi commented 3 years ago

Describe the solution you'd like I would like to propose support for external tools / plugins which are compatible with Arduino IDE. Ex. https://github.com/me-no-dev/arduino-esp32fs-plugin or https://github.com/me-no-dev/EspExceptionDecoder If it is already supported, how can I use tools in Pro IDE? If it is not supported yet, are there any plans for implementing that?

Describe the problem

There is no support for extending the capabilities of Arduino IDE via external tools/plugins. This is a feature parity mismatch with Arduino IDE 1.x.

To reproduce

  1. Follow the instructions to install the "Arduino Pico LittleFS Filesystem Uploader" plugin: https://github.com/earlephilhower/arduino-pico-littlefs-plugin#installation
  2. Start Arduino IDE 2.x
  3. Open the Tools menu.

🐛 The expected "Pico LittleFS Data Upload" menu item is missing.

Expected behavior

Support for extending the capabilities of Arduino IDE via external tools/plugins equivalent to the system provided by Arduino IDE 1.x.

Arduino IDE version

Original report

2.0.0-beta.1

Last verified with

2.0.2

Operating system

All

Operating system version

any

Additional context

Additional reports

Related

Issue checklist

kittaakos commented 1 year ago

Thanks! That plus some method for runtime API version detection would also work fine. Essentially, as a plugin author I might want to support multiple IDE minor versions (with semver-incomplatible APIs) in a single plugin package release.

Absolutely. This has been requested internally, too. The implementation has yet to be decided. Since all Arduino IDE extensions will be VS Code extensions, I would keep the Arduino IDE API compatibility check mechanism close to the VS Code one and use the engines field in the extension manifest (the package.json in this case).

Something like this could work:

package.json:

{
  "name": "your extension name",
   // other props
  "engines": {
    "vscode": "^1.78.0",
    "vscode-arduino-api": "^0.1.2" // <-- IDE2 will assert whether your extension is compatible with the runtime
  },
  // rest of your extension's package.json
}
bmentink commented 1 year ago

It's been two years and still no support for tools plugins in java. Will this ever happen? I am needing the SPIFFS Data upload for the ESP32 ... like a lot of folk.

V2.0 is not much of an "upgrade" if it is not backward compatible with V1.x

dlarue commented 1 year ago

It's been two years and still no support for tools plugins in java. Will this ever happen? I am needing the SPIFFS Data upload for the ESP32 ... like a lot of folk.

V2.0 is not much of an "upgrade" if it is not backward compatible with V1.x

@bmentink what platform are you on? If Linux or Mac it might be somewhat easier to use the Makefile I posted. Maybe it could be ported to Python and made a separate too.