• Dear Cerberus X User!

    As we prepare to transition the forum ownership from Mike to Phil (TripleHead GmbH), we need your explicit consent to transfer your user data in accordance with our amended Terms and Rules in order to be compliant with data protection laws.

    Important: If you accept the amended Terms and Rules, you agree to the transfer of your user data to the future forum owner!

    Please read the new Terms and Rules below, check the box to agree, and click "Accept" to continue enjoying your Cerberus X Forum experience. The deadline for consent is April 5, 2024.

    Do not accept the amended Terms and Rules if you do not wish your personal data to be transferred to the future forum owner!

    Accepting ensures:

    - Continued access to your account with a short break for the actual transfer.

    - Retention of your data under the same terms.

    Without consent:

    - You don't have further access to your forum user account.

    - Your account and personal data will be deleted after April 5, 2024.

    - Public posts remain, but usernames indicating real identity will be anonymized. If you disagree with a fictitious name you have the option to contact us so we can find a name that is acceptable to you.

    We hope to keep you in our community and see you on the forum soon!

    All the best

    Your Cerberus X Team

DevLog Team DevLog Holzchopf - Update 2021/07/06

Seems you are tackling the hardest parts first. Great work! :D
 
Version 0.1.2

Changelog

Added
- Key bindings for
- Build HTML game (F6)
- Build & run HTML game (F5)
- Show context help (F1)
- onTypeFormattingEditProvider for auto-capitalization
- Rebuild documentation command
- Tokenizer and Semanter for Cerberus X
- Back and forward navigation in the documentation panel "browser"

Changed
- Whole source refactored - while the extension started out as a test whether the Cerberus X Documentation would be displayable in a VS Code webview panel, it's now built to be an actual language extension
- Single Cerberus X tools' paths are now derived from the configured CX installation path
- DocumentSymbolProvider now relies on the tokenizer (massive performance improvement)
- Cerberus X documentation style improved to match the original one-page-per-class style

Fixed
- Syntax highlighter not accepting scope accessors after indexing expression
- Reopening the documentation creating additional webview panels

Known Issues
- F1 help not context aware
- Documentation browser's address bar not fully functional
- Documentation browser's search shows first match only
- Semanter not scoping Select / Case statements correctly
- DocumentSymbolProvider level of detail not configurable
- DocumentSymbolProvider needs a filter

To Dos
- Context recognition (for F1 context help and auto-complete)
- Build and run options for other targets


Installation Guide



Feel free to test, report any issues (please consider the "known issues" above before reposting), comment on wishes or to dos or ask questions =)
 

Attachments

  • cerberus-x-0.1.2.zip
    188.7 KB · Views: 111
I just installed it and my first impression is great! I have the feeling that this extension is a huge step for CX and its future!
Thank's a lot!
 
Ok, so far it looks great.

Here my wishes for the next iteration:

1625682848312.png


1) Get rid of If /else statements and local var declarations in the outline window.

2) A toolbar for check/build/run&build.
3) A toolbar to select the target.
4) A way to fix the build file via menu and/or keys.
5) Clear the output console when you build and run.

Question: How will the debugger in C++ integrated?

Overall it feels great. I need to think who a final version could be distributed and installed.
 
Last edited:
It looks good and I was able to compile Bouncy Aliens to HTML without any issue. Many thanks!!
 
1) Get rid of If /else statements and local var declarations in the outline window.

Yes, that's what I meant with
- DocumentSymbolProvider level of detail not configurable
- DocumentSymbolProvider needs a filter

;)

The default would be to only show global and class level declarations.

I'm not sure how I can make this easily accessible however. My dream would be to have a toolbar for that directly in the outline panel. But I don't think that's possible. Maybe there will be a general Cerberus X toolbar that gives access to all these functions.

2) A toolbar for check/build/run&build.
3) A toolbar to select the target.
4) A way to fix the build file via menu and/or keys.
5) Clear the output console when you build and run.

Question: How will the debugger in C++ integrated?

Overall it feels great. I need to think who a final version could be distributed and installed.

2-4) probably above mentioned toolbar. Or the actual "Run and debug" panel, but IMHO that's a bit too over the top for our use.
5) good idea!

So far I don't spend time thinking about the C++ debugger, so I'm not going to answer this now :)

The final version could be distributed in the extensions store (or however it is called). Some mentioned coupling it from VS Code using it's open source base. I don't know how this works, but if it works, we'll figure out.
 
Not sure if this is being worked on, but the 3rd party docs page doesn't show them, and their icons don't show like it does currently, so there is no way to display additional information for these modules. Example: fantomCX

Edit: Ok, the page that is normally linked through the icon can be reached by pressing f1 on the module name.
 
Bug: Code samples like this one

Code:
<pre>
Local myEngine = New ftEngine
' Now deactivate all sound playback
myEngine.ActivateSound(False)

</pre>

Don't show up.
 
Thanks for reporting these, Mike! I'll tackle them in the next iteration.
 
I have a small wish for the next iteration:
I realized that I only use it for testing just because it is limited to html5 builds.
The chances that I use it as a daily driver are much higher if you could add desktop and android build and run commands.

Another minor thing is the optional auto-capitalization. Maybe you can set it enabled by default or add a toggle switch inside the extension settings. I think it is best to have most functionality enabled by default, just to increase the probability of getting them tested.
 
Yes, other build targets are on the list. And high priority even!

Another minor thing is the optional auto-capitalization.

What do you mean exactly? Auto-capitalization is no option at the moment, it's a forced feature. Have you run into trouble with it/experienced situations where you would have preferred it not being there? Could you share those? I'd really like to make this feature flawless - because if it is flawed, people will turn it off (once that's possible).
 
1626277299661.png


This is the popup in the right bottom corner when installing the extension for the first time. If you ignore it - and I did - it disapears until the next start of vscode and auto-capitalisation is not working. After pressing yes it didn't appear even after uninstalling and a fresh install.
Maybe this is just some annoying security feature you cannot avoid.
 
Ah, that! formatOnType is an extension-independent global VS Code setting. Seems I've always had it turned on here and thus never got to see that popup. I'll need to test this thoroughly... Yes, there absolutely must be a way to re-trigger it. Maybe I will just add a command that calls the initialisation method of that feature again (which checks that setting and - if turned off - causes the popup to appear)
 
@Phil7 I now realised it's working as intended: If the global formatOnType is turned off, you get prompted at startup to turn it on. That global setting has to be turned on in order for auto-capitalisation to work. Of course, I could choose to NOT show such a prompt and just silently turn it on -- but that's against some UX guidelines and might actually just not work (changing global editor settings without user interaction could be blocked, I don't remember).

Once it's turned on, there's no need to re-trigger that prompt. If you ignore it, you ignore it. I don't see a way to show that prompt in a way so it cannot be ignored...
 
I expected it to be a bit like this. It is not a big deal at the moment.
I am just guessing, but maybe a solution could be to check the value at startup as reading global settings should be possible!? And then deal with it as a separate popup where you can enable it or shut off the popup forever. Just like common update/upgrade warnings.

Were you able to add build options for desktop and/or android so far? Just curious.
 
@Holzchopf Any update on the misbehaviour/bugs I posted some time ago? Its ok if you have no time to work on it further, just being curious aka wanna know :)
 
Back
Top Bottom