The Liberty BASIC Assist Tools program is an add-on collection of tools for Liberty BASIC. When installed, LBAssist.exe replaces (but does not delete) the Liberty.exe file, so you can still launch the original Liberty BASIC application without the tools if you like. Assist doesn't change the overall appearance of the Liberty BASIC IDE, but it sure does add to your overall programming results. The major tools offered in Assist include
Project versioning is my favorite aspect of LB Assist, especially with large programs. If you're like me, you save the same code under a different name each time you make a significant change. Those changes look good on the drawing board, but, when you run the new version with changes perhaps you discover a variable that used to be changed now fails to change. What gives? You look for the previously saved program and run it, only to discover that the variable still doesn't change. How did you miss that? No problem. Where is the program that was saved prior to that program? Uh oh. That's the one you've just overwritten with your most current version. Enter LB Assist. Assist organizes your saved versions so you can easily find and refer back to the working code. I say 'easily find' because LB Assist allows you to include a text comment for each saved version. No longer will you need to open multiple copies to read remarks within the code itself.
Versioning is more than just storing sequential copies of the program in progress. Have you ever opened two programs side by side and scrolled through each trying to find changes? With LB Assist, you can actually compare the two code versions with just a click of the mouse. Assist finds the changes and then color codes the non-matching sections for easy detection. This Browse Differences tool makes finding even small changes a snap.
Browsing for Differences the Old Way
Browsing for Differences with LB Assist
The default folder for projects is the Liberty BASIC root directory. You can specify an alternate projects folder in the Liberty BASIC preferences.
If you’ve ever needed, or just wanted, to know how much time is spent in any particular block of execution, then Performance Profiling is just the tool for you. The profiler works with the LB Debugging tool. All you have to do is run the code in debug mode and check the Profiler box.
The left margin expands to allow the time displays. Simply scrolling down the line will tell you how much time is spent with each code execution. In a large program, this is a great way to discover that the reason the code doesn’t work is because no time number is being displayed next to code that is not executed, thus that all important sub was never called. For programs where time is definitely of the essence, maybe you could find a way to write more efficient code in those areas with large numbers.
One of the most common ways to bug up your code is to misalign IF THEN ELSE END IF statements and FOR NEXT loops. This is especially true when these blocks and loops are nested. A beginner quickly learns that progressive indenting in and out of nested blocks and loops will keep the code from becoming tangled. Easier said than done, especially when you are in the midst of a creative spurt. You’ve finally just figured out the logic and your fingers are flying. You can barely stop to correct PRNIT to PRINT, let alone, count those tabs. With LB Assist, the formatting is done with a simple press of ALT+O. Not only are IF THEN END IF’s and loops indented for easier and more efficient visual inspection, but so too are the Subs and Functions. With LB Assist, you spend more time creating and less time formatting. I do have one wish for the code formatter; it involves white spaces. I would like to have the code formatter automatically insert a blank line between Sub, Function and Gosub blocks.
The Code Formatter - Before and After
The application deployment is what we have all been waiting for. This tool is a packaging wizard that will gather all the required runtime engines and files as well as the chosen support files, and save them all into one folder. The application deployment even has an option to specify and insert your custom icon if you desire. Of course, Liberty BASIC has always allowed you to substitute the Liberty BASIC icon for your custom icon in a tokenized program, but the application deployment does it all in one step. I found the steps of the application deployment to be a little less than intuitive the first time through, but relatively easy thereafter. I didn’t have the benefit of the Help File that first time, either. Now, I just click, click, click and DONE! No more copying, pasting and renaming files. I’ve tokenized several programs this way and the application deployment has worked flawlessly every time.
Deploying Your Project
Error Handling and Help File
When I first began beta testing LB Assist, there was no help file. Still, with the exception of a little awkwardness using the application deployment, managing the tools was pretty intuitive. LB Assist has some built in error trapping as well. For instance, a folder (deploy path) must be specified prior to deploying the program. Failure to do so results in a helpful notice advising you to define a deployment path first.
I can be very careless at times, and these types of built in error trappings are greatly appreciated.
The newly included help file is a great addition. The help file was written by Carl Gundel and includes illustrations for each step. For the visual learner, this is a great format. The LB Assist Tools help file is accessed using the same help menu as the Liberty BASIC help manual, so it's never more than just a click away.
All in all, LB Assist is an outstanding tool for the serious programmer. Make no mistake. LB Assist is not a ‘must have’ but it is a definite ‘nice to have’ – especially if you want to spend more time coding programs and less time managing programs. Personally, the more I use LB Assist, the more I appreciate it. Thanks, Carl, for this tool.
To learn more about LB Assist, or to download a copy, visit [http://www.libertybasic.com/assist.html]