This should be the last update before 2.4. As planned, I spent some time improving support for more existing languages. What I didn't plan on was quite how long C/C++ would take, as it ended up being another one where I had to get a good chunk of the way towards full language support in order to handle all its syntax quirks. But it's done now, as well as improved support for Python and a few other minor improvements. I'm calling this Beta 2 because of all the new code for C/C++, but everyone else can consider this Release Candidate 1. No more new features will be added before release, only bug fixes if people find any.
C and C++ support is considerably improved. It still only has basic language support, but it has extra code to properly handle things like:
Attributes, including [[ ]], __attribute__(( )), and __declspec( ) forms.
Function and class modifiers in all the different positions they can appear in, including not getting thrown off by ones with parentheses like "alignas(8)".
Templates and requires statements, including inline definitions with "requires requires { }".
Operator overloads, including for type conversions.
Function pointers, including as parameters and return values declared inline instead of with typedefs.
Function bodies other than braces, such as "try".
Syntax highlighting for language-specific keywords, number formats, and string formats like raw strings.
C++ has a lot of quirks (insert "why can't you just be normal??" meme, "char*(ClassName::*SCREAMS(int x))(int)") but it should all work. Let me know if you come across anything that doesn't or formats funny.
I also did some work on Python. It now has:
Improved decorator handling and formatting.
Improved parameterized class and function handling, including constraints.
Improved support for type hints.
Improved support for stars and slashes in function parameters.
Syntax highlighting for language-specific keywords, number formats, and string formats like interpolated strings.
C# has improved attribute formatting when they have named parameters.
Kotlin constructors won't have :this() and :super() calls appearing in prototypes.
All languages that support operator overloads and constants will get prototypes for them.
You can now press the slash key in the documentation to focus on the search bar, similar to GitHub and GitLab.
You can now set the tab/bookmark icon for the generated documentation. Like custom home pages, you can add the Icon property to your project in Project.txt or to an advanced style in Style.txt. You can use .png, .gif, .ico, .svg, or .jpg files.
They won't show up in Safari when opening the documentation from the hard drive though. Safari doesn't allow it. They'll still work in Firefox and Chrome.
External links now open in new tabs.
Fixed a bug handling paths with spaces in them introduced in Development Release 2.
So that's it. Again, if you're not using C or C++ you can consider this Release Candidate 1. Barring any bugs the next release is 2.4.