Quote Originally Posted by peter View Post
The other thing I have been promoting is a verb last function or sub naming convention like SplashScreenShow compared to ShowSplashScreen.
I'm with you on this. It also follows the normal OO naming in C#/VB.Net (or for that matter all dot-notation OO languages), e.g. SplashScreen.Show(). Though if you convert it into a CLOS method, you'd get one of 2 versions:
  • General purpose: (InvokeMethod SplashScreen 'Show)
  • Specific method: (Show SplashScreen)



Quote Originally Posted by peter View Post
WHat is you feeling on

Dim objDatabase as Database

or

Dim dataBase as Database
Not too sure here. Personally I don't feel that the obj prefix does anything to help, I actually think it may detract from the understanding (e.g. is it a database of objects - i.e. entities in the DWG; or is the variable an object type, just per chance containing a "database"?)

Also the word "database" doesn't say much beyond that it's a query-able collection with multiple key(s) and value(s) per item, probably indexed on all keys and some values. Here also there's a bit ambiguous even from the start, is it:
  • The "database" of entities in the drawing - i.e. a collection object containing references to each entity (graphical or otherwise)
  • A database like a relational DB with multiple tables, relationships, built-in queries, etc.


If the 1st, I'd probably prefer to call it something like DrawingObjects (or perhaps even ActiveDrawingDatabase), if the 2nd I'd go with <MyDescriptiveNameHere>Database.

Quote Originally Posted by peter View Post
It is a place to start.
It definitely is a very good place to start! Would need to extend that a bit to also allow for invoking methods. Not to mention, probably needs some inquiry functions too - to find out what object classes are available as well as what properties and the details around their methods. I'd suggest not going with the same approach as vl-dump-object, but rather use a normal LispFunction which returns a list, e.g.: A list of (<property name> . <value>) pairs for the PropertyInspect function, a list of (<method name> (<arg1 type> <arg2 type> ... <argN type>) <return type>) for the MethodInspect function. That way, if the Lisp user wanted to list these things to the text screen it would be a simple task - it just allows for much more in the shape of actually useful info for Lisp.