Skip to content

Provide a sketch navigation/outline view #4083

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

Closed
lmihalkovic opened this issue Nov 5, 2015 · 8 comments
Closed

Provide a sketch navigation/outline view #4083

lmihalkovic opened this issue Nov 5, 2015 · 8 comments
Labels
Component: IDE user interface The Arduino IDE's user interface feature request A request to make an enhancement (not a bug fix)
Milestone

Comments

@lmihalkovic
Copy link

Even something seemingly simple as a single file sketch is in reality a more complex application silently pulling on multiple resources under the surface. The idea here is to be able to easily visualize these resources, without taking away any of the current beautiful simplicity.

Well done, this feature is the doorway to many other possible extensions.

Proposed reference design:
screen shot 2015-11-02 at 1 26 08 pm

Expanded view (references is inappropriate)
screen shot 2015-11-01 at 11 06 05 pm

@lmihalkovic
Copy link
Author

Done

@lmihalkovic
Copy link
Author

I am at the point where i will be able to automatically add the #include statements to the sketch source code when the user clicks on a checkbox near the name of a lib in the outline view [chk boxes to ba added soon] or automatically heckbthe right boxes when the sketch is loaded, and remove them when a #include is removed.
The point is code or clicks are fully interchangeable. And the include search path will be passed accordingly (i have my own compiler that supports that)

@lmihalkovic
Copy link
Author

I also have a experimental [read ugly read boxes] design for

  • when the selection is a file inside "References" (meaning a ref to a system library): moving references up and down in the outline view to decide on the link order. Default behavior is the order of the #include statement in the code (moving the refs up/down) does the same to the #includes in the source file.
  • when the selection is a file inside a sketch: changing the order of the tabs inside the sketch
  • when the selection is a file inside a library: changing the order of the tabs in this library

System library source files can only accessed RO, so there is no point in changing the order of the tabs to view these files

@lmihalkovic
Copy link
Author

Lastly, i was thinking about making the #includes section of a sketch read only with a nice shadowed box around to signify that although it is source code, the IDE owns it (use the outline to add/remove/moveup/movedown the individual #include statements).. But dunno if would be useful or confusing. For each of the selected references (i.e. library), the IDE could systematically generated a guarded include statement like:

#include <XXXXXXXX.h>
#ifndef XXXXXXXX_lib
#error Library XXXXXXXX is required by this sketch
#endif

to ensure clean reporting even from the command line. but there are pitfalls with this approach... so at best it should be opt in... [#warn instead of #error, or some other checks - Like for e.g. I can actually test if the lib in question has the #define XXXXXXXX_lib and only generate the guarding code if things won't break]

and if we want to be really finicky.. there could also be some sort of a XXXXXXXX_ver macro....

@per1234 per1234 added the Component: IDE user interface The Arduino IDE's user interface label Jul 18, 2017
@twanek
Copy link

twanek commented Nov 11, 2017

hello!

i know this is old topic, but there is any progress / plans on implementing vertical tabs in ide?
the horizontal tab arrangement really sucks, i work with 30+ tabs, and despite i use a 24" display, i can't see all of them... always have to scroll through all the tabs to find one. plus, the text in the tabs is so small, that it is barely readable on high resolution screens.

thanks!

@facchinm
Copy link
Member

Hi @twanek , would you mind trying the Beta 1.9.0? While the horizontal, fixed width tabs are still there, at least they are scrollable and do not disappear when the window is too small. Let me know if it improves your workflow or if it could be further improved, thanks!

@twanek
Copy link

twanek commented Nov 13, 2017

thanks for the reply!

sure, i can try it. should i download this beta from the arduino website?

@twanek
Copy link

twanek commented Nov 13, 2017

  • the name of the tabs should have better contrast / bigger fonts, it is somewhat hard to see the text

image

  • the "new tab" button is floating over the tabs, and it is too small. it would be better to place NEAR the serial monitor button, not UNDER. anyway, there is plenty of unused space in that line with the serial monitor button.

  • if a tab which is not visible in the current view it is scrolled to, or selected from the drop down list, it is showed in the very right of the screen. this is not too practical + it is partially covered by the "new tab" button

  • the "current tab" highlighting and the scroll function is really cool. but in the long run, vertical tabs are needed for big projects

  • as a quick - but usable - workaround for vertical tabs, you could just add a "pin" option to the "new tab" drop down list: it should make the drop down list persistent, floating over the code editor area. it would be a real treat!

image

  • what about natively integrating this nice dark theme?

image

hope this feedback is useful, thanks for the work! if i can help with anything else, just send me a message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: IDE user interface The Arduino IDE's user interface feature request A request to make an enhancement (not a bug fix)
Projects
None yet
Development

No branches or pull requests

5 participants