IIRC even QuickBASIC 4.5 had a form of "IntelliSense" in the form of hints as to the defined data structure, if provided in DECLARE statements. F1 hints are mentioned elsewhere for built-ins but I seem to recall it (or a similar quick action) also working for a smart of "what kind of data are you allowed to pass to this user defined subroutine or function".
TYPE PERSON
AGE AS INTEGER
FIRSTNAME AS STRING * 12
END TYPE
DIM KURTZ AS PERSON
PRINT KURTZ._
You could do something like this, but it wouldn’t provide any kind of code completion or autocomplete to show the AGE/FIRSTNAME fields where the underscore represents the text cursor.
However you are right that if you hit F1 on KURTZ it would then show User defined PERSON, and then you could hit F1 again and it would show built-in help of user defined TYPE with AGE/FIRSTNAME properties. Sort of like context-sensitive help I guess.
As far as subroutines/functions go, if you tried to pass data into a subroutine where the data couldn’t be coerced, it would just give you a generic type mismatch.
DIM Y AS SINGLE
Y = 10.5
PRINTIT Y ' Throws parameter type mismatch
PRINTIT (Y) ' Succeeds through a self-evaluated expression which is effectively BYVAL because Microsoft takes pain in your suffering.
SUB PRINTIT (X%)
PRINT X%
END SUB
But to your point, you could point at PRINTIT and hit F1 and get a quick symbol look-up.
I've spent the last 6 months building a similar 1:1 faithful recreation of QBASIC and QuickBasic 4.5 that runs natively in the browser [1] - so I know way more about this than anyone should by right.
What do you mean?
Does the site have intellisense? Yes
Did VB6 have intellisense? Also yes
IIRC even QuickBASIC 4.5 had a form of "IntelliSense" in the form of hints as to the defined data structure, if provided in DECLARE statements. F1 hints are mentioned elsewhere for built-ins but I seem to recall it (or a similar quick action) also working for a smart of "what kind of data are you allowed to pass to this user defined subroutine or function".
So I think you're talking about TYPES.
You could do something like this, but it wouldn’t provide any kind of code completion or autocomplete to show the AGE/FIRSTNAME fields where the underscore represents the text cursor.
However you are right that if you hit F1 on KURTZ it would then show User defined PERSON, and then you could hit F1 again and it would show built-in help of user defined TYPE with AGE/FIRSTNAME properties. Sort of like context-sensitive help I guess.
As far as subroutines/functions go, if you tried to pass data into a subroutine where the data couldn’t be coerced, it would just give you a generic type mismatch.
But to your point, you could point at PRINTIT and hit F1 and get a quick symbol look-up.
I've spent the last 6 months building a similar 1:1 faithful recreation of QBASIC and QuickBasic 4.5 that runs natively in the browser [1] - so I know way more about this than anyone should by right.
[1] - https://mordenstar.com/share/qbasic-core-demos