Updating the IDE (spinoff thread #1)

I wonder if its the I can navigate anywhere any time business
Its one of the things I truly hated about that set up

I literally altered HOW I worked and used the IDE because of this
First tab was ALWAYS just for opening items in a new tab
Other tabs I’d never navigate to another object

Otherwise I’d find I’d have several tabs showing the same thing and the one I thought I had open showing some item wasnt there any more

Like Bookmarks in a web browser
if you have a list and open them and then click on bookmarks all the sudden you can have several tabs with the same item open
Thats not always useful or productive
I find its the same in the current incarnation of the navigator & tabs

2 Likes

What Norman said.

I never used the tabs in Xojo (or in Xcode for that matter)… I found them to become confusing, so I’d just use the side pane (in both Xojo and Xcode) and every once in a while just close all the tabs to clean up the look

In part thats what the problem with the tabs was - it easily got confusing

I literally had to train myself to look at whether I was in the left most tab or not, if not DO NOT touch the navigator !!!
It was an adjustment from the older set up where you could not get into this situation

I’ve gotten mostly used to the new one (after so many years you do) but I think the old set up would still work well with some adjustments

Thats kind fo what this thread is about

Maybe I’ll bang together a mock up

My problem with the old set up is having to switch tabs to navigate to a new object. Being able to jump around with the sidebar makes me much more productive. I cried a little inside when the new IDE mockup was presented at XDC.

lots of folks felt the exact opposite that having every object clickable all the time induced a sense of … havoc ? randomness ?

VS and such sort of deal with this by not having to deal with it

You double click an item in their “navigator” and it plops a file in the editor - the whole thing
and if you double click it again you reuse the existing tab

the whole idea of this thread is how to make a UI that isn’t so open to chaos

Norm, I’m not clear whether you’re talking about Xojo or RS?

If Xojo, then are you not using locked tabs? With the “Double click opens item in new tab” option turned on (which is the default, right?), double-clicking any item in the Navigator opens that item in a new, locked tab. Then in that tab you can’t navigate to anything outsite that item, unless you unlock the tab first. So you should not find that a tab is not showing what you expect.

Yes, I also keep the first tab unlocked and use it for opening project items in a new, locked tab. An improvement I’d like to see here is what you described for VS - if I double-click an item that is already open in a locked tab, then just go to that tab instead of opening a duplicate tab. The search function sort-of does this - if you’re currently on a locked tab and select a search result that isn’t in that tab, it will first check if the selection is in another locked tab and go it. Otherwise it goes to the first unlocked tab and shows the selection there.
But, if you’re currently on an unlocked tab and choose a search result, it will just move you to the result in that tab. I’d like this to also first check if any locked tab can show the result before changing the focus in the unlocked tab.

Now, another feature in Xojo is that you can open any item in it’s own (locked) tab, whether a base project item (window, module, etc) or just a single method or even property. If you do that a lot, I can see it getting confusing. I rarely do that. I usually only open major project items in a tab (window, module, etc.), unless I’m doing a lot of back-and-forth between indiviual items in the same tab. But then I usually open another workspace so I can see both at the same time. (I can’t recall - could RS do that?)

I use locked tabs all the time
And still end up in this situation with the same item open in multiple tabs from time to time

RS allowed you top open multiple windows as well
And if you typed into one there other reflected this changes
Even if it was a shared item between projects

EDIT : and this IS much better than it used to be - no question

Maybe from double-clicking an item you forgot was already open in a tab? My wish for a change in this behaivor would prevent that.

thats possibly one
reopening a project left with tabs open I often end up with disassociated tabs as well

Never seen that. Most of my projects have multiple tabs that are left open, and they always restore exactly the same.

I always seem to end up with ones that have nothing selected so revert to the entire project

No idea why

There is another funny thing:

some times, I open a second working space to compare two windows contents from the same project. Very useful when needed.

At compile time, I get two dialogs displaying the compilation progress… :smile:

Like when you double click an object on the navigator?
image

So, I think a good design change would be having a “Project” tab that is fixed as the first tab, that always says “Project” in the tab label no matter what is selected, and that only shows base project items, with no expansion/drill-down (exept for folders, which aren’t really an item but an organizational tool). A single click on an item will display the main or “base” view of that item. And you can’t change anything from there - everything is read-only. You have to double-click (or other context/menu bar action) to edit the item, which would take you to an existing tab for that item if present, otherwise open it in a new tab. All opened tabs are always locked - you can’t ever wind up somewhere else in the project in that tab.

But sitll keep the option to open any sub-item of a tab (method, property, etc) in a new, locked tab, with same rules as above.

that seems to make sense

need to find a decent mock up tool to be able to quickly cheetah some of this out and play with the idea

OK I hacked this quick “thought experiment” together kind of quick so its not super pretty or polished (its mostly hard coded)
It demonstrates some ideas
Thats it

  1. tabs are always locked - there no navigator to move away from the item in the tab
  2. code you can edit in one of two ways - one method at at time or “all at once”
    and yeah the IDE would figure that out and know what methods got added modified etc

EDIT : for any of the code editors the trick is to know “when” to “commit” the edits

  1. on a “save” while the tab is open
  2. when the tab they are in gets closed for whatever reason
  3. on a “run” of the project - not that I’m intending to build a compiler etc :stuck_out_tongue: but that would be appropriate

not sure that lost focus works well … maybe if it can be fast as heck

the all at once mode has some … interesting “features” that would just be there

  1. insert a “end function” or “end sub” followed by a new sub/function decl would split an existing bunch of code
  2. removing one could merge two methods together - one after the other

the other thing it demonstrates is the idea of a “universal project”

the project tab lets you quickly see which items are/are not part of any given target

this “project” started out as a desktop one so everything was originally “desktop only”

but I added a web app and a web layout
and a web target
so that far right popup lets me indicate which items are part of a “web target”

ultimately this “project” could be one “solution” that has a desktop app, a web app and iOS app a mobile app in it (or several of each)

and since I can easily add items to targets I can easily share code because its just part of that target

no copy & paste required

when “compiled” the project would just send the compiler all the code for whatever target is being compiled

assuming I was writing a compiler

Norm, just a note on posting links - remember to always use the secure version (https). Today’s browsers balk at non-secure sites/links.

So, assuming you’re not writing a compiler, and that Xojo won’t deliver a command line one anytime soon, what’s the goal here? Save it as a Xojo text project for opening/compiling in Xojo?