Thanks Scott. I think there was a real Studio UI gap.
Generic classes and interfaces were still supported by the language/compiler, but Studio 26.7.1 did not expose generic type parameters in the class/interface inspector. Generic methods already had an Advanced > Generics field, but classes only showed Deprecated and Message, so there was no clean UI path for creating something like:
Class Stack(Of T)
I’ve fixed this for the next release: https://feedback.objo.dev/bug/684
In the next release, normal class and interface inspectors will have a new Advanced > Generics field, matching the existing generic method workflow. The class name should remain just:
Stack
and the Generics field should contain only:
T
or, for constrained type parameters:
T As Comparable
Studio will then emit the declaration as:
Class Stack(Of T)
So your Stack example should be achievable.
I also fixed the confusing Name-field behaviour. If you type Stack(Of T) into the Name field, Studio will now split that into Name = Stack and Generics = T. If you type Stack(T), Studio will also normalise that to the real Objo syntax and emit Class Stack(Of T). Partial input such as Stack( should no longer leave the inspector in that broken Stack( state.
Existing generic class/interface declarations are also preserved and loaded back into the inspector. So if a file already contains Class Stack(Of T), selecting the class will show Stack in the Name field and T in Advanced > Generics. Rename, duplicate, superclass, interface, scope, and deprecation edits now preserve the generic declaration too.
Generic methods are unchanged: for a method, continue to use the method editor’s Advanced > Generics field and enter only the contents, e.g. T or T As Comparable.