Class++ | Classes and OOP made easy and powerful with Access Specifiers, function overloading and more!

Actually, yeah! I got inspired from you a lot in this project, especially the way you used the debug library to obtain information about the stack trace, though I heavily modified the method you used to have high performance (1µs) and more capability.
I forgot to credit you though, so, in a next version, I will credit you in the Util module.

1 Like

I replied to your issue on GitHub.

1 Like

Would it be cool if there was a plugin for Class++ that creates preset boilerplate class when typing out some keyword? (similar to how VSCode does it with C++). Maybe something like typing out “cppclass” or just “class”.

There is a plugin that autofills services by typing the keywords, you could take a look at that :eyes:

1 Like

That’s a pretty great idea! I was already thinking of creating a plugin to show some performance analytics about the objects that you create, but this would make it even better. I will probably make it so you can create your own snippets too.

(This would also be a good excuse to spend some time while waiting for the new Type Solver to be complete so I can release version 1.3.0 -or 2.0- lol)

1 Like

What I feel this is, is just an easier and more expanded on type system/handler. Looks good but by its self I might not end up using since I tend to not use custom types that often.

Quick update: I am currently in the progress of writing the plugin.
(Had to migrate PluginComponents resource to Fusion 0.3 so it took a while to get started lol.)

Currently planned features:

  • Customizable class auto-complete

    • You’ll be easily able to create boilerplate classes that you can easily auto-complete into your script.
  • Automatic version-checking

    • The plugin will give you an option to automatically update the Class++ Module so you won’t need to think about updating the plugin. If there are any major changes between versions, the plugin will tell you.
  • Class Explorer

    • (May or may not make it in) The plugin will display a window that allows you to easily configure your classes without having to be too dependant on code.

If you have any suggestions or features you want to see, feel free to let me know!

2 Likes

Please keep us updated, this plugins seems helpful!

1 Like

Update!

Here’s what the Class Snippets menu will look like:

It displays snippets with their name, prefix and description. It’s not close to being finished yet as I haven’t even finished designing the main snippet editing tab, but soon I’ll give you guys an update.

Feel free to let me know if you have any suggestions or requests!

2 Likes

Hello! Just wanted to give an update again.

The plugin is soon to be done, snippet editing has been implemented quite well, and it works without any (obvious) problems so far.

Though I’ve decided to seperate the plugin into 2 versions, one free and one full version.

The free version will have:

  • Easy snippet configuration.

    • You’ll easily be able to modify the Public and Private fields of the class snippet without having to write a single line of code.
    • Snippets will have names, prefixes and descriptions that you can configure.
  • Version Checking

    • The plugin will tell you if you’re running an outdated version of Class++, this will be configurable in the Settings.
  • Easy Class++ set-up

    • When you first install the plugin, it will display a window offering you to automatically set-up Class++ in a folder you choose.

The full version will have all the features from the free version, and:

  • Full snippet configuration.

    • You’ll be able to modify a snippet without any restrictions or limitations. You’ll be able to add members to the Protected access specifier, and you’ll be able to add code directly into the snippet, allowing you to add all sorts of members and functions.
    • There will be very little limits on the snippet name, prefix, and the description.
  • A much more detailed snippets menu that displays more information. (Will be configurable in settings)

  • Ability to export or import snippets from .json files.

    • You’ll be able to export or import a snippet.json file from the plugin, allowing you to freely modify the snippets as you wish.
  • Automatic version updating. (Will be configurable in settings)

    • In a folder you choose, the plugin will automatically put the latest version of Class++ and notify you of the major features that has been added.

The full version will be released on Patreon and will cost probably around 4 or 5$.

Let me know if you have any problems or questions!

2 Likes

Update: Here’s how the snippet editor will look like:

Let me know if you have any questions or suggestions!

5 Likes

Looks great. I’ll use this for my new project game :grin::ok_hand:, btw nice work :heart_eyes:

1 Like

Currently I’m just using the “Snippets! Autocomplete” plugin with ClassPP for my game framework. It is the most simple and easy to use plugin because all you have to do is edit a script in ServerStorage to create/modify a snippet. You should give it a try. I recommend a script-based approach instead of forcing users to adhere to a specific format as is shown in your screenshot.

Someone recommended that to me above and I checked it out, it’s pretty nice. However, this plugin is designed to create class autocompletes, and also provide other functions that I’ve listed above. It’s not a simple autocomplete plugin. (You might consider it a glorified donation system with the full version)

Also, you will be able to put code in the full version with other benefits. The demo(free) version is just for people who don’t want to spend time coding and just be able to easily create class snippets that work.

2 Likes

Its the best thing I ever saw on this forum!

1 Like

Hi! Thanks for Class++ - it’s seriously cool! I checked out the code, and I can see you’ve really made creating classes in Roblox much easier. The operator & function overloading is awesome - makes everything way more expressive!
The classes that are created by this module are much easier to make SOLIDes
(in my language, this is an adjective like “cool”, which has the same root as in the SOLID. It’s a pity that translator didn’t transfer to English.)

In addition, Class++ greatly simplifies code organization and component reuse. Thanks to the built-in inheritance system (instead of the meta-label pattern🤮) and lightweight, typed encapsulation (instead of the __(nev) index), your code becomes more structured and easier to understand.

1 Like

Coming Soon to Class++, full auto type-completion for objects:

image

It will also support the new inheritance system I’m currently working on. Stay tuned as a lot of things are coming soon. (v2.0.0)

2 Likes

Release 1.2.1


Sorry for the long wait between updates. I was waiting for the new type solver to be stable enough to make a whole new re-write version of Class++, but since it’s taking a long time, I decided to release a small update with bug fixes for now.

  • Fixed overloaded functions not being able to access Private or Protected members of their class.
  • Fixed #2.
  • Fixed Class++ allowing a member to be set to nil. This creates problems where when that member is set to nil, it no longer exists within the objectData, thus it not being able to be set again later.
  • Class++ now automatically creates certain access specifiers internally, so you don’t have to declare empty access specifiers in the classData table in order to create functions with the outside class definition.
  • Class++ now warns you if you’re using methods that will be changed/removed in a future update. This can be silenced by setting the silenceUpdateWarning attribute in the module instance to true.
  • Changed the default module name when imported from the .rbxm file from “Class++” to “ClassPP” to increase compatibility.

More info on the upcoming update:


Currently, I’m working on the version 2.0.0 of Class++, this is a whole re-write with full support for the new type solver. It will also contain a bunch of very cool features such as multi-inheritance, automatic destructor calls, and more quality of life stuff.

I’ve also made a new GitHub discussions page, where I’ll be revealing and talking about the new features I want to add to Class++, so I’d be really glad if you’d check it out. I like hearing feedback from all of you.

2 Likes

Here’s another teaser for 2.0, class function is now overloadable.

image (2)

3 Likes

Hey, I was using this but could not find the way to access a function in the super class (like the python super() keyword). Is there functionality for this?

Not yet, but in the next update it will be implemented. You can see the discussions page on GitHub in the above post for more information.

1 Like