-
-
Notifications
You must be signed in to change notification settings - Fork 398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing support for external tools / plugins #58
Comments
@szerwi |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
Hi, I'd like to mention that for the ESP-specific plugins, we are open to rewriting them in any language required for integration with Arduino IDE v2.0. We are also open to some more limited or localized plugin functionality. For example, for the exception decoder it would be sufficient if we could add a core-specific "filter" tool which could take serial data from stdin and annotate with any additional information, and send that to stdout. The IDE could then launch this process in the background. If some direction is given by the Arduino team, we can also contribute PRs to support these features. |
Thank you @igrr |
This is actually an "IDE 2.0 vs IDE 1.x" feature parity item, I re-arranged the title and the labeling 🐱 |
This comment was marked as off-topic.
This comment was marked as off-topic.
Also the esp8266/esp32 data upload tools (spiffs and LittleFS) are missing. Without them using/testing the 2 rc5 IDE is useless for me :-( |
@ubidefeo @per1234 Congrats on reaching the Arduino IDE 2.0 release milestone! I wanted to check if you could give any direction with regards to this issue? As I mentioned in #58 (comment), Espressif is willing to contribute this functionality, since it's the main hurdle for our users in migrating to Arduino IDE 2.0. Any suggestion from you would be really valuable. |
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
oh cool, I see a pull request working on this #1893 thanks @radurentea I have no experience with node.js or electron but this pull request can be an example I learn from. |
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
I wrote a test plug-in with reference to GitHub - dankeboy36/esp-exception-decoder: ESP8266/ESP32 Exception Decoder Extension for the Arduino IDE. It works very well under vscode, but does not work in Arduino 2.2.1. The main difference is that the terminal.sendText function does not work on Arduino. As far as I know, the terminal displays only keyboard input and terminal.sendText . Now terminal.sendText cannot be used. Is there any other way for me to display data to the terminal? Here is the link to the published test firmware, Arduino-helloworld - Visual Studio Marketplace.
|
Hi, if you link the repo to the source code, I can look at it. Update: |
@dankeboy36 |
This comment was marked as resolved.
This comment was marked as resolved.
Arduino IDE 2.x is built on the Eclipse Theia IDE framework. Theia supports VS Code extensions: https://theia-ide.org/docs/authoring_vscode_extensions/ So Arduino IDE 2.x had support for VS Code extensions all along, and in fact the stock Arduino IDE installation already makes heavy use of extensions. No additional work is needed on Arduino IDE codebase for VS Code extension support. Even though the VS Code extension system makes it possible to do quite a lot in adding additional capabilities to Arduino IDE, in order to accomplish the equivalent to what is done in some of the Arduino IDE 1.x "plugin" tools, the extension also needs access to the Arduino-specific data known to Arduino IDE/Arduino CLI. The lack of access to such data has been the technical blocker for creating VS Code extension replacements for the Arduino IDE 1.x "plugin" tools. That missing capability was recently added: #2110 So from a technical standpoint we can close this issue as resolved. The outstanding task for Arduino is documenting:
I would like to keep the thread here very tightly focused. For less structured discussion of the subject, please feel free to create a topic on Arduino Forum. I'll be happy to participate over there: |
Could you also consider adding the user-facing instructions for installing extensions (e.g. which directory they have to be dropped into, depending on the platform) as part of this task? Another question I had regarding the plugins API: can the plugin developers expect that the API (vscode-arduino-api) major version will change together with the IDE major version? In other words, can we assume that no breaking changes would be introduced in the API for the v2.x branch of the IDE? |
It is a good idea to clarify explicitly. However, installing any VS Code extension in IDE2 is the same procedure as adding a custom theme. It's already documented here.
All extensions should go into the same folder, independently from the platform.
No, this is very unlikely. I doubt Arduino IDE 3.x will come soon, but we might need to apply breaking changes in the API and increment the major version. Also, there is a plan to use |
I have totally missed this page, sorry about that! Indeed, it already includes everything necessary. So simply updating the page to mention "extensions" along with "themes" is enough.
I just meant the specific directories where the extensions should be placed on Windows/Linux/macOS — which is already described in the page you linked, so all good.
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 Something like this could work:
{
"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
} |
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
https://github.com/earlephilhower/arduino-pico-littlefs-plugin#installation
🐛 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
The text was updated successfully, but these errors were encountered: