Hi All,
The latest version of QBJS (0.10.0) is now available: https://qbjs.org
Release Highlights
Language/Compatibility Enhancements
This release contains a number of important language support updates which should greatly enhance the compatibility of QBJS with QBasic/QB64.
Implicit Variable Declaration
One of the most significant updates included in this release is support for implicit variable declaration. It is no longer necessary to make sure that you DIM all of your variables in QBJS. This enhancement also includes support for the QB64 Option _Explicit and Option _ExplicitArray directives.
Integer Division Operator
This release also now includes full support for the integer division (\) operator. In previous releases integer division was treated identically to a normal division operator (/) and did not perform the expected rounding.
More Keywords
Support has been added for QBasic Mid$ statement as well as the QB64 Clipboard methods:
New Language Features
This release adds support for Method Pointers which provide the ability to define Functions and Subs as variable types. Pointers to existing subs or functions can be referenced with the new '@' operator. Also included is a new standard String library containing commonly used string operations (e.g. Replace, Split) as well as advanced regular expression matching.
IDE Updates
The QBJS IDE has also received a major refresh with this update. A "New Project" button has been added to the toolbar to allow convenient creation of a new, blank project when one is already open.
Code tabs have been added to make it easier to manage larger projects with multiple resources in the QBJS IDE. Users can now open additional files from the virtual file system for edit in separate code tabs. This includes syntax highlighting for a number of known text file formats:
![[Image: code-tabs-1.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-1.png)
All other text files will be loaded in a plain text editor as shown below:
![[Image: code-tabs-2.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-2.png)
Image formats will be loaded in an image preview tab:
![[Image: code-tabs-3.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-3.png)
Sound file formats will be loaded in an audio preview tab:
![[Image: code-tabs-4.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-4.png)
All other binary files will be loaded in a hex viewer tab.
New Theme
A new theme named Blackout has been added for those who like a very dark look but retains the same font and feel as the original QBasic IDE.
![[Image: blackout.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/blackout.png)
Javascript Tab Syntax Highlighting
Syntax highlighting has been enabled for the Javascript tab in the console to aid in readability of the generated Javascript for troubleshooting:
![[Image: js-tab.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/js-tab.png)
You can view the full release notes here.
Special shout out to @FellippeHeitor for numerous contributions to this release:
Clipboard support, Mid$ statement, Print fixes, InKey$ fixes, EndIf, IDE new button and more!
As always, I am very interested in any feedback you have or issues that you may encounter.
The latest version of QBJS (0.10.0) is now available: https://qbjs.org
Release Highlights
Language/Compatibility Enhancements
This release contains a number of important language support updates which should greatly enhance the compatibility of QBJS with QBasic/QB64.
Implicit Variable Declaration
One of the most significant updates included in this release is support for implicit variable declaration. It is no longer necessary to make sure that you DIM all of your variables in QBJS. This enhancement also includes support for the QB64 Option _Explicit and Option _ExplicitArray directives.
Integer Division Operator
This release also now includes full support for the integer division (\) operator. In previous releases integer division was treated identically to a normal division operator (/) and did not perform the expected rounding.
More Keywords
Support has been added for QBasic Mid$ statement as well as the QB64 Clipboard methods:
- _Clipboard (statement)
- _Clipboard (function)
- _ClipboardImage (statement)
- _ClipboardImage (function)
New Language Features
This release adds support for Method Pointers which provide the ability to define Functions and Subs as variable types. Pointers to existing subs or functions can be referenced with the new '@' operator. Also included is a new standard String library containing commonly used string operations (e.g. Replace, Split) as well as advanced regular expression matching.
IDE Updates
The QBJS IDE has also received a major refresh with this update. A "New Project" button has been added to the toolbar to allow convenient creation of a new, blank project when one is already open.
Code tabs have been added to make it easier to manage larger projects with multiple resources in the QBJS IDE. Users can now open additional files from the virtual file system for edit in separate code tabs. This includes syntax highlighting for a number of known text file formats:
![[Image: code-tabs-1.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-1.png)
All other text files will be loaded in a plain text editor as shown below:
![[Image: code-tabs-2.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-2.png)
Image formats will be loaded in an image preview tab:
![[Image: code-tabs-3.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-3.png)
Sound file formats will be loaded in an audio preview tab:
![[Image: code-tabs-4.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/code-tabs-4.png)
All other binary files will be loaded in a hex viewer tab.
New Theme
A new theme named Blackout has been added for those who like a very dark look but retains the same font and feel as the original QBasic IDE.
![[Image: blackout.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/blackout.png)
Javascript Tab Syntax Highlighting
Syntax highlighting has been enabled for the Javascript tab in the console to aid in readability of the generated Javascript for troubleshooting:
![[Image: js-tab.png]](https://raw.githubusercontent.com/boxgaming/qbjs/refs/heads/main/samples/screenshots/0.10.0/js-tab.png)
You can view the full release notes here.
Special shout out to @FellippeHeitor for numerous contributions to this release:
Clipboard support, Mid$ statement, Print fixes, InKey$ fixes, EndIf, IDE new button and more!
As always, I am very interested in any feedback you have or issues that you may encounter.


