Wish Modules Tab upgrades

Roycefer

Well-Known Member
Licensed User
Longtime User
Right now, the Modules tab looks like this:
B4X:
ActiveModule
ModuleA
ModuleB
ModuleC
ActiveModule:SubA
ActiveModule:SubB
ActiveModule:SubC
ActiveModule:SubD

I think it would be more useful if it looked like this:
B4X:
ActiveModule
ModuleA
ModuleB
ModuleC
ActiveModule:Regionless
     SubD() As String
ActiveModule:RegionA
     SubA(arg1 as Int, arg2 as ComplexMatrix) As HyperbolicParaboloid
     SubB() As String
ActiveModule:RegionB
     SubC() As Boolean

In short, having the subs in the active module grouped by region and showing their full signature is a lot more informative and useful than having "ActiveModule:" prefix every sub and having them listed solely alphabetically with no parameter or return info. You can check out how it's done in NetBeans for inspiration, though this scheme would be even more useful than the way NetBeans does it since NetBeans doesn't have #Regions.

Also, it would be handy if you used a different icon for Public and Private subs. I'm thinking something with a padlock in it for Private subs. Perhaps also a different icon for subs that will be seen as properties outside the class. Could even be the same icon used in the code completion menu (the wrench). And different icons for the various kinds of modules (class, filter, handlers, websocket, etc...).
 
Last edited:

Roycefer

Well-Known Member
Licensed User
Longtime User
It would also be very useful to have a +/- next to each #Region listing and each Sub listing in the Modules tab so that you could collapse and expand #Regions and Subs from the Modules tab. All this would make navigating large modules much more programmer-friendly.
 

Roycefer

Well-Known Member
Licensed User
Longtime User
I'm not suggesting a tree, just indentation (along with #Region names and full Sub signatures). The collapsing and expanding would be occurring in the code editor window. It would just be (additionally) controlled from the Modules tab.
 

Roycefer

Well-Known Member
Licensed User
Longtime User
As I presume work on these ideas is continuing apace, I thought I'd add one more improvement to the Modules tab. In addition to everything described above, it would be handy if the Globals for the module were listed (as well as their type). Clicking on a Global would have the same effect as double-clicking on a word in the code editor (namely it would highlight all the appearances of that word in the active module). All these improvements would really make navigating large projects and large modules a lot easier.

To summarize:
B4X:
ActiveModule
ModuleA
ModuleB
ModuleC
+ActiveModule:Globals
    ImportantValue As Int
    MeaninglessValue As String
    Interesting As EllipticalPrism
+ActiveModule:Regionless
    +SubD() AsString
+ActiveModule:RegionA
    +SubA(arg1 as Int, arg2 as ComplexMatrix) As HyperbolicParaboloid
    +SubB() AsString
+ActiveModule:RegionB
    +SubC() As Boolean
 
Last edited:
Top