I often need to jump between a few places in my code that are NOT in the same module. The current way bookmarks are implemented in B4A's IDE makes it impossible for me to do this quickly.
Some users suggested creating remarked keywords such as 'FixUI and place these in the spots of my code that I want to jump to and then do a quick search for this keyword and jump around that way. But that wastes a bunch of time by having to type this keyword at each and every spot I want to jump to, let alone issues with typos, and finally all the issues related to trying to remember all the keywords in between programming sessions. It's really not a good work-around at all.
So, I hope I finally have a suggestion that you (Erel) will really like and will implement asap.
First, having a dedicated "Library Manager" Tab on the right-side pane I feel is kind of a waste of a tab because it's not like I need to add/remove libraries all the time. So, my first suggestion is to move the library manager to a dedicated dialog screen available off of the "Tools" menu. This dialog could have the typical left and right list boxes where the left listbox lists the available libraries and the right listbox lists the libraries currently loaded for the current project. And there can be the two "Move" buttons in between the listboxes that the user can use to add and remove libraries for the current project.
Now that we have freed up a tab in the right-pane, I would like to suggest replacing it with a "Bookmarks" tab. This tab will:
This will also create a whole new way to be productive in the IDE because users will now be able to quickly jump to desired spots in the project without the disadvantages of these other methods:
1) When doing a "quick search" or "Find all references", you first need to click on the desired word, then you are presented with a potential long list of similar looking results when you really only want one specific occurrence.
2) When you do a new search or Find Reference, the previous results are lost so you have to repeat the whole process again to create the list of results to jump through.
But by having a dedicated "Bookmarks" tab, the bookmarks will always be immediately available to the user so they can instantly jump to locations in their code without having to remember, then type in various keywords, to then be presented with a potentially long list of false "hits" that keyword searches often have.
Implementing bookmarks like this would also be so much more useful then only being able to do a "next bookmark" or "previous bookmark".
So, what do you think?
Some users suggested creating remarked keywords such as 'FixUI and place these in the spots of my code that I want to jump to and then do a quick search for this keyword and jump around that way. But that wastes a bunch of time by having to type this keyword at each and every spot I want to jump to, let alone issues with typos, and finally all the issues related to trying to remember all the keywords in between programming sessions. It's really not a good work-around at all.
So, I hope I finally have a suggestion that you (Erel) will really like and will implement asap.
First, having a dedicated "Library Manager" Tab on the right-side pane I feel is kind of a waste of a tab because it's not like I need to add/remove libraries all the time. So, my first suggestion is to move the library manager to a dedicated dialog screen available off of the "Tools" menu. This dialog could have the typical left and right list boxes where the left listbox lists the available libraries and the right listbox lists the libraries currently loaded for the current project. And there can be the two "Move" buttons in between the listboxes that the user can use to add and remove libraries for the current project.
Now that we have freed up a tab in the right-pane, I would like to suggest replacing it with a "Bookmarks" tab. This tab will:
- List all the bookmarks located in the "entire" project (every code module). And when a bookmark is clicked on, it will immediately jump me to it's location no matter which code module it is in. This is the same exact functionality you currently offer for both the quick search and find reference result items.
- Allow users to create "groups" (like on the files tab) so users can move/sort the bookmarks into groups. This would allow users to create groups like "Database ToDo", and "UI Todo" so all the bookmarks related to a particular category can be easily located without being mixed in with a bunch of unrelated bookmarks.
- When a user adds a new bookmark (by selecting "toggle bookmark" in the right-click menu), the title of the bookmark (as displayed in the right bookmark tab list) will be set to the text of the line of code that was bookmarked. However, the user should be able to rename a bookmark by simply right-clicking on it and selecting "Rename" so they can give each bookmark a more useful name.
- The user should also be able to delete a bookmark from the right bookmark list by simply right-clicking on it and selecting "delete". This would allow users to delete no longer needed bookmarks very easily instead of having to manually open up each and every code module and use Alt-PgUp and Alt-PgDn to see if there are any bookmarks in that module that is no longer needed.
This will also create a whole new way to be productive in the IDE because users will now be able to quickly jump to desired spots in the project without the disadvantages of these other methods:
1) When doing a "quick search" or "Find all references", you first need to click on the desired word, then you are presented with a potential long list of similar looking results when you really only want one specific occurrence.
2) When you do a new search or Find Reference, the previous results are lost so you have to repeat the whole process again to create the list of results to jump through.
But by having a dedicated "Bookmarks" tab, the bookmarks will always be immediately available to the user so they can instantly jump to locations in their code without having to remember, then type in various keywords, to then be presented with a potentially long list of false "hits" that keyword searches often have.
Implementing bookmarks like this would also be so much more useful then only being able to do a "next bookmark" or "previous bookmark".
So, what do you think?
Last edited: