arduino / Arduino

Arduino IDE 1.x
https://www.arduino.cc/en/software
Other
14.14k stars 7.01k forks source link

Make Due's console output auto-scroll, Add scroll bar for tab bar #8307

Open RootlessAgrarian opened 5 years ago

RootlessAgrarian commented 5 years ago

In my version of IDE (OSX) I see two minor inconveniences; imho it would look slicker and cooler, and be easier and more intuitive to use, if these were fixed.

1) in the scrolling text frame at bottom of the sketch window, we see orange text showing compile progress, error messages, etc. During load of the sketch onto a Due, there are two phases: pushing the sketch over to the Due then verifying it. Both of these have (sort of!) a progress bar in the bottom "compile messages" frame. This progress bar however is pretty much a fail, because it (a) does not animate on one line, curses style, and (b) does not auto scroll either! So all you see is the first "bite" of percentage update, unless you scroll manually. So I end up dragging that text up repeatedly to see the progress of the flash.

2) I have more than 10 tabs in my sketch and there seems to be no way to drag or scroll the tabs horizontally. I expected that a scrollbar would appear at the top just under or above the tabs as soon as my tab count exceeded the window width. It would be nice if there was one :-) As it is, I either have to make my window inconveniently wide to see all my tabs, or choose tab names from the menu at upper right. When I choose a tab name from the menu at upper right, the text of the code in that tab is displayed in the editing window BUT the tab name is not updated, so it's not clear which tab I am editing! I end up editing with no highlighted tab displayed at the top. That's a bit confusing. I think the tab bar should scroll instantly sideways to display the name of the (menu) selected tab in the farthest right position. But it would be even better to be able to scroll the tab bar right/left to find the tab I am looking for, much more intuitive than a dropdown menu.

Since these are the only two issues I can think of with the IDE, it's a pretty darned impressive piece of software and I have really been enjoying using it (for the last 2+ years).

per1234 commented 5 years ago

there seems to be no way to drag or scroll the tabs horizontally. I expected that a scrollbar would appear at the top just under or above the tabs as soon as my tab count exceeded the window width.

We already have a feature request for this: https://github.com/arduino/Arduino/issues/3543

I think the tab bar should scroll instantly sideways to display the name of the (menu) selected tab in the farthest right position.

We already have a feature request for this: https://github.com/arduino/Arduino/issues/1193

RootlessAgrarian commented 5 years ago

Thank you per1234. I feel a bit nooby-dumb for not realising this had been proposed before. The Issues list is a dauntingly huge read... anyway, I guess my proposal just counts as another vote for that particular upgrade. BTW, I say again that I like the Arduino IDE better than any other IDE I have ever used. Not really sure why -- something about the simplicity. It feels uncluttered and transparent.

facchinm commented 5 years ago

About 2* (scrolling tabs) the Beta IDE contains a possible implementation, so if you could test it and report if it works as expected it would be great!

RootlessAgrarian commented 5 years ago

Thanks for the note. I am downloading even now and will give it a try... AHA, I see that it has a new name (v2!) and new icon colour. Nice. I can test it w/o stomping on the production version.

Background: my tabs all have names starting with alphabet cap letters so they get compiled in the right order. The include files have double letters like AA, AB, AC, and then the "real" code starts with B, C, D, E. Typical tab labels: AA_SketchName.h AB_Ctrl.h, AC_Pitches.h, B_Setup, C_Loop, D_NextionRW, E_NextionManage, F_Dispatch, G_Sound... There are about 12 of them now. Maybe more on the way :-) So this gives you some idea of average label length.

[after a brief test drive] I see that the new beta way of managing tabs is to elide the text labels so as to make N tabs small enough to fit across the top. So my tabs now have names like "AB...h" and "E...". If I added more, at some point the first N tabs (include files) would all be called "A..." which wouldn't be too helpful :-)

So, hmmm. Is this a tangible improvement? On the plus side it is exactly what e.g. Chrome does when the tab count gets silly, so has a kind of "expectedness" value. Personally I wish Chrome did something else though :-) because I often have only one letter showing and have to rely on favico to tell them apart.

I guess for some (who use fewer tabs) enough text would still be visible that you really could tell them apart. For me, with 12 and counting, navigation is still a challenge. 'Cos the elision (beta version) means I have to remember what tab I assigned which alpha letter to, which means I have to pop up the menu anyway to remind myself, and I was hoping to avoid the menu.

My conclusion: this way of dealing with tabs probably helps the person with six or so. For the person with 10-12, maybe more, it could be a bit better than the production version (if you've really got your tab order fully memorised) but for me it still means visiting the menu. For the person whose tab names start with mnemonic initials rather than with compile-order alpha initials it would also be an improvement. Say my tab for Sound was called Sound (S), NextionManage was ManageNextion (M), NextionRW was RWNextion (R), etc. then I guess having just an initial letter showing might be enough of a reminder. But then M and R would not be next to each other, which logically they should be because they are both Nextion code... sigh.

What's in the beta probably improves matters for 90 percent of users. I with my 12 tabs and counting am probably not representative. But if an outlying case may be allowed to influence the devs, I think I would like either (a) to double the tab bar with the second half either underneath or above the first half (underneath would be more intuitive for me but either would do), or (b) scrub/scroll sideways to reveal tabs as desired. Eliding the labels is third-best for me.

facchinm commented 5 years ago

@RootlessAgrarian I get your point; the "chrome-like" behaviour is something I wanted to introduce to avoid scrolling (your solution 2) as long as we could (until the number of tabs become huge). Our graphical "toolkit" is not very smart :slightly_smiling_face: Normally I test that patch with Marlin, that also have files with similar names, but I navigate using the keyboard (CTRL + TAB) or mouse wheel, and stop at the desired file based on the title (may not work as intended on OSX, now I get it). There was some code to make the selected tab normal size, but navigating created some kind of "motion sickness" :slightly_smiling_face:

Anyway, any new idea (no second/third/fourth level bar since it doesn't scale, neither tree-like folder navigator on the left since it completely change the paradigm) is very well accepted!

peek 2018-12-20 09-58