-
-
Notifications
You must be signed in to change notification settings - Fork 401
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
Update Theia version to 1.25.0 #947
Conversation
arduino-ide-extension/src/electron-main/theia/electron-main-application.ts
Outdated
Show resolved
Hide resolved
@msujew CI is failing here, probably because of the number of changes in the yarn.lock |
54dff56
to
d36c108
Compare
@AlbyIanna It took me a bit, but it seems to be a bug in The other updates in the |
3ece882
to
ddee44e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UPDATE: resolved
To reproduce
- Do a minimal simulation of a fresh install by deleting the "User data" folder:
- Windows:
-
%APPDATA%\arduino-ide\
-
- Linux:
-
~/.config/arduino-ide/
-
- macOS:
-
~/Library/Application Support/arduino-ide/
-
- Windows:
- Start the Arduino IDE.
🐛 The IDE hangs forever at the splash screen.
Arduino IDE version
2.0.0-rc5-snapshot-414f51f
(the tester build for 8357946)
Operating system
Windows 10, Ubuntu 20.04
(I didn't try it on macOS.)
Additional context
This part of the command line output looks interesting to me:
root ERROR Failed to start the frontend application.
root ERROR Error: No matching bindings found for serviceIdentifier: Symbol(CompressionToggle)
at file:///E:/downloads/arduino-ide_2.0.0-rc5-snapshot-414f51f_Windows_64bit/resources/app/lib/bundle.js:2:8809025
at m (file:///E:/downloads/arduino-ide_2.0.0-rc5-snapshot-414f51f_Windows_64bit/resources/app/lib/bundle.js:2:8809322)
at b (file:///E:/downloads/arduino-ide_2.0.0-rc5-snapshot-414f51f_Windows_64bit/resources/app/lib/bundle.js:2:8809497)
at file:///E:/downloads/arduino-ide_2.0.0-rc5-snapshot-414f51f_Windows_64bit/resources/app/lib/bundle.js:2:8810031
at Array.forEach (<anonymous>)
at file:///E:/downloads/arduino-ide_2.0.0-rc5-snapshot-414f51f_Windows_64bit/resources/app/lib/bundle.js:2:8810010
at Array.forEach (<anonymous>)
at b (file:///E:/downloads/arduino-ide_2.0.0-rc5-snapshot-414f51f_Windows_64bit/resources/app/lib/bundle.js:2:8809557)
at file:///E:/downloads/arduino-ide_2.0.0-rc5-snapshot-414f51f_Windows_64bit/resources/app/lib/bundle.js:2:8810031
at Array.forEach (<anonymous>)
ddee44e
to
8357946
Compare
This comment was marked as off-topic.
This comment was marked as off-topic.
No matching bindings found for serviceIdentifier: Symbol(CompressionToggle)
error has been resolved. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UPDATE: resolved by https://github.com/arduino/arduino-ide/compare/00386d4fddc7a5ce5f4fdc4032096e5b4f1ac67b..a3d38384b93ebeab10ec7f5c402bc859355c261e
To reproduce
- Start the Arduino IDE.
🐛 The splash screen is not shown. - Open an additional window via any available mechanism:
- File > New
- File > Open
- File > Sketchbook
- Sketchbook view
🐛 A splash screen is shown unexpectedly (normally the splash screen is only shown on IDE start up, not when opening an additional window)
🐛 The new window never opens.
🐛 The splash screen never closes.
Arduino IDE version
2.0.0-rc5-snapshot-6269207
(the tester build for 00386d4)
Operating system
Windows 10, Ubuntu 20.04
(I didn't try it on macOS.)
Additional context
The above description is for when only a single window opens on startup of the IDE. The behavior is a little different when multiple windows open on startup of the IDE (due to having been open at the end of a previous session using a working version of the IDE). In this case, one window opens fully and the others do appear but never load fully:
That must be my fault, let me check. |
@msujew, could you please drop my suggestion (00386d4). It is causing the issue. Let's put aside that I messed up the condition here 😕, but the logic simply wrong when opening the second, third, etc. windows. We cannot rely on the window tracking from the superclass. I am sorry for the inconvenience, and thanks for the help 🙏 Per, I promise I will do more manual testing before submitting anything. |
00386d4
to
a3d3838
Compare
Additional window load failure issue is solved by https://github.com/arduino/arduino-ide/compare/00386d4fddc7a5ce5f4fdc4032096e5b4f1ac67b..a3d38384b93ebeab10ec7f5c402bc859355c261e Thanks!
Hey now, leave some fun for me Akos! 😆 |
a3d3838
to
0d7b185
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UPDATE: resolved by https://github.com/arduino/arduino-ide/compare/a70273a6c10d34c6b75c446439da0209c67bfb97..130586e0f40b46d4beef4065fbc9e713ae5d712d
Describe the problem
🐛 The "Auto save" setting in the File > Preferences dialog is always checked, even when you had unchecked it previously.
🐛 The IDE never saves automatically, even though the "Auto save" setting is shown as enabled in the Preferences dialog.
To reproduce
- Select File > Preferences... from the Arduino IDE menus.
- Uncheck the box next to "
☑
Auto save". - Click the OK button.
- Select File > Preferences... from the Arduino IDE menus.
🐛 The box next to "☑
Auto save" is checked. - Click the OK button.
- Make a change to the sketch.
🐛 ⬤ indicator appears on right side of sketch tab.
🐛 The change is not saved to disk.
Expected behavior
The state of the "Auto save" setting in the File > Preferences dialog reflects my previous selection.
The IDE's auto save behavior reflects the "Auto save" setting's state.
Arduino IDE version
2.0.0-rc6-snapshot-e2a9dd5
(the tester build for 0d7b185)
OS: Windows 10, Ubuntu 20.04
Additional context
This part of the command line output looks interesting:
root WARN Request to validate preference with no type information:
I don't have that when using 2.0.0-rc6
The problem does not occur when using 2.0.0-rc6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UPDATE: resolved by https://github.com/arduino/arduino-ide/compare/a70273a6c10d34c6b75c446439da0209c67bfb97..130586e0f40b46d4beef4065fbc9e713ae5d712d
The "Go to definition" capability provided by the integrated language server gives the user quick access to the definition of any object referenced in the sketch code.
🐛 Even though the file containing the definition is opened in the IDE, the cursor is not moved to the definition, meaning the user would still need to search through the file to find it.
When the definition is in the currently open file, this means "Go to definition" has no value and no apparent effect.
To reproduce
- Create the following sketch:
void setup() { digitalRead(2); } void loop() {}
- Select Tools > Board > Arduino AVR Boards > Arduino Uno from the Arduino IDE menus.
- Wait for sketch processing to finish.
- Right click
digitalRead
.
ⓘ There is no special significance of this function other than it provides a more dramatic demonstration due to its definition being located many lines down in the source file. - Select "Go to Definition" from the context menu.
🐛 wiring_digital.c
opens as expected, but the cursor is not placed at the location of the digitalRead
definition.
Expected behavior
The cursor is placed at the definition of the object that was the target of the "Go to definition" operation.
Arduino IDE version
2.0.0-rc6-snapshot-e2a9dd5
(the tester build for 0d7b185)
OS: Windows 10, Ubuntu 20.04
Additional context
This screencast provides a minimal (but less dramatic) demonstration of the issue. Note that the cursor never moves to line 1 as expected:
Sketch and language server logs from the operation shown in the screencast:
The issue does not occur when using Arduino IDE 2.0.0-rc6
The issue occurs even when the object reference is in a .cpp
or .c
source file instead of .ino
.
Since I see the same bug in Theia Blueprint 1.24.0, it would likely be considered out of scope for this PR, but maybe worth mentioning that this makes the already buggy "Keyboard Shortcuts" view even worse: Custom key bindings are never shown in the "Keyboard Shortcuts" view To reproduce
UPDATE: Still occurs with 2.0.0-rc6-snapshot-fd113af (build for 130586e) and with Theia Blueprint 1.25.0 (Beta) |
UPDATE: resolved by https://github.com/arduino/arduino-ide/compare/a70273a6c10d34c6b75c446439da0209c67bfb97..130586e0f40b46d4beef4065fbc9e713ae5d712d The window no longer automatically reloads after changing the "Language" preference. I am OK with the new behavior for the following reasons:
But I thought I should mention it anyway since I think the change was unintended and perhaps it is a symptom of a problem that has other more significant implications. To reproduce
|
@msujew do you have updates on this PR? |
@fstasi As noted in Slack, I'm on vacation 'til the 16th of May. Afterwards this'll be my first priority. |
I checked and fixed the followings:
It should work now. However, there is a drawback. There was a breaking change in Theia and Suppose a user disabled the autosave, the
I could not reproduce it. Please double-check. Thank you! go_to_definitions.mp4
It's fixed. It reloads. It was a generic reload issue with the first window. I decided to change the splash screen logic once more and clean it up. |
Thanks @kittaakos. The build workflow did not run because of the merge conflict. Would you mind resolving that so I can make sure to use a standardized build for the testing? |
When reloading the browser window (for example, the language has changed), we show index_html.mp4Also, when changing the language, we should reload all windows, not just a current one. The spinner was a change in Theia, but it feels stupid to have the new, fancy spinner, although the IDE startup performance time is the same. Do you want me to restore the old spinner? I vote to restore the old spinner. Thoughts? Thank you! Dev notes: I merged the I found these problems: Tons of warnings in the logs:
Sometimes the firmware updater gets an incorrect JSON (see here):
|
Co-authored-by: Mark Sujew <mark.sujew@typefox.io> Co-authored-by: Akos Kitta <a.kitta@arduino.cc> Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
a70273a
to
130586e
Compare
Looking good! All the outstanding issues from my previous reviews are resolved except for the keyboard shortcuts UI issue (which I see is also still in Theia Blueprint 1.25.0 (Beta)).
Since the project is still in a prerelease phase, I don't think it is necessary. I would like to see it be clearly documented in the release notes of the release where this is introduced though.
I think it is not a great UX. I believe this change was introduced by 112153f I would be happy to open an issue about it if you think it is something that should be investigated eventually.
The current limited approach of only reloading the active window was explained in #625:
I think @AlbyIanna might have looked into reloading all the windows at one point, but I don't recall the exact details. Something to consider is that full localization update will also require the preference to take effect in Arduino CLI.
I don't have a preference either way. Maybe @91volt or @gmarchiarduino would be interested in the subject though.
I haven't been able to reproduce this, even after checking on my Windows and Linux machines. Do you get it even after clearing your IDE configuration files? |
Thank you for the review ❤️ See my comment below. Please let me know if there is anything else I need to do for this PR.
I will take care of it.
It is worth an issue. It used to work. Now, it's showing
👍 Thank you for linking the PR. If it does not take too much time, I think we need a ticket for this. We can reload all windows, and we need to restart the CLI.
Note: It's already reset, we have the old spinner in the IDE2. +1 for having the old spinner and switching to the new one once the startup is faster. In the long run, we can add a preload. See an example here.
I fixed this too. |
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did some further testing of the build and didn't find any problems. Thanks!
Thank you for the initial changes and the review. 🙏 I am merging the PR. |
Motivation
The recent two updates have fixed a lot of issues with Theia, so it would be wise to update.
Closes #852
Change description
Updates the
@theia/*
dependencies to1.24.0
. Changes any code that is affected by this update. Most changes are due to the monaco uplift and changes in how electron windows are handled/created.Other information
Reviewer checklist