PlanetSquires Forums

Support Forums => WinFBE - Code Editor and Visual Designer => Topic started by: Paul Squires on March 25, 2022, 09:15:25 AM

Title: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 25, 2022, 09:15:25 AM
Hi everyone,

Well, I figured that I better release something for you folks to test out otherwise more time will just drag on.

Here is the download link for the first beta for WinFBE Version 3.

https://github.com/PaulSquires/WinFBE/releases/download/2.2.0/WinFBE_Suite3-BETA-1.zip (https://github.com/PaulSquires/WinFBE/releases/download/2.2.0/WinFBE_Suite3-BETA-1.zip)

DO NOT USE THIS ON YOUR PRODUCTION CODE UNLESS YOU HAVE FULLY BACKED UP YOUR PROJECTS. I SAY THIS BECAUSE I WOULD HATE FOR ANYTHING IN YOUR PROJECTS TO BE COMPROMISED BY THIS BETA


KNOWN ISSUES RELATED BETA-1

- The vertical scrollbar thumbs will shrink very small when huge number of lines exist in a document. Need to add logic that resizes the thumbs to a minimum size and then correctly calculate the lines to display in the editor when the thumb is moved.

- The "Check for Updates" feature has been disabled for the Beta releases.

- The WinFBE 64-bit version has been compiled using the new asm -gen gas64 switch rather than -gen gcc. Interesting to see if any issues result because of the new compiled code.

- ComboBoxes or being able to up/down arrow through a history for the Find/Replace textboxes.

- Syntax highlighting on a line fails for all keywords/characters after occurrence of a "#" used as a file reference. Examples:
put_result = put(#f, ,gCtxt())
print #dump_tables_fnum, hex(ibyt, 2); "trash string"

- How to display overloaded functions in the Function Lists. Currently only the name of the function appears and that could relate to more than one overloaded function thereby taking you to a potentially wrong location in the source code if you click on one of them.

- Call tips overloading. Similar to the Function list issue. Need to allow multiple overloaded functions to be able to cycle through in the call tip.

- Color the popup autocomplete list to be consistent with the selected theme.

- Code Intellisense popups needs its parser re-written to be more efficient and consistent. It works "okay" but could be much better.

- Very little has been updated to the visual designer portion of WinFBE. Hopefully all of the changes to the editor portion has not negatively affected parts of the visual designer.


Please let me know the good and bad and what needs improvement. This version is quite a bit different than the existing WinFBE so just give it a good workout and seek out where things differ in the new version. I have tried to simplify functionality rather than bury as much into the menus and options as possible. I have also made an effort for the editor to be more keyboard focused than than point/click. You should be able to assign keyboard shortcuts to just about everything.

If you dislike the new color themes then you can easily create a new theme by just copying an existing theme and changing the values to your liking. Also, I have plenty of time to modify the existing themes to different colors prior to releasing the final version should you have any suggestions.

Good luck!

Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Johan Klassen on March 25, 2022, 01:32:37 PM
thank you Paul  :)
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 25, 2022, 05:59:38 PM
You're welcome Johan :-)   Please let me know things you like and dislike once you have had time to play around with it. I still have time to make adjustments to the editor before I release the final version 3.0.

Here is the list of changes and updates:

Version 3.0.0-BETA-1
Editor:
- Complete re-write of main editor UI to have a look and feel more in line with modern code editors.
- Updated to Scintilla Version 5.1.5 (Dec 7, 2021). Also, switched to use Lexilla.dll with custom lexer called lexWinFBE that handles the FreeBasic lexing.
- All new Theme system. All colors (RGB) can be edited in external .theme files found in the \themes folder.
- Added Windows API keywords and syntax highlighting.
- New Bookmarks list that shows all bookmarks from all open (and closed) files. Easily navigate or clear bookmarks throughout all files.
- New option to save/restore "session". Allow reloading and showing of files active during most previous editor use. Will reload a project should a project had been active. Editor state (open windows, editing position, selected compiler, etc) is saved and restored.
- Added Environment option to automatically load the last used Session file when the editor starts. If the last Session saved was a Project, then the project will be loaded.
- New keyboard binding mapping allowing the user to choose their own keyboard shortcuts for various editor functions.
- New Auto Save functionality. When enabled, unsaved files will be periodically saved to temporary files. In the event of crash, these files will be ask to be used when the editor next attempts to load the crashed file.
- New Font option (Environment Options / Colors and Fonts) to allow for extra spacing between editor lines on screen.
- Re-worked portions of Code Folding to make it visually more appealing.
- Changed some default Code Folding keyboard shortcuts because "Alt" based shortcut would sometimes invoke Windows system functionality.
- Changed logic of "Toggle Current and All Below" folding to now work on fold levels inside a function that of greater depth than the fold level being toggle. Previously, this function only worked on base level fold points (basically, the sub/function line and all other sub/functions below it in the source code). This new logic makes it easier to fold/unfold code blocks from deep with a particular function making it somewhat more usable in practice than the old logic.
- Greatly increased the Font selector combobox (Environment Options / Colors and Fonts) so it should be easier now to pick fonts that have long descriptive names.
- Multiple code editor text selections is now enabled. Hold CTRL and highlight multiple areas of text.
- Editor will try to gracefully fallback amongst various monospaced fonts should the previously selected font in the config file no longer exist. This can occur, for example, if you switch to different computers without the same fonts installed, or you switch between Windows and Linux (Wine).
- Replace All actions are now batched allowing Ctrl+Z Undo to undo all of the changes made, not just the last one.
- Changed Replace keyboard short from Ctrl+R to Ctrl+H to be in line with the vast number of other editors that use the Ctrl+H shortcut.
- Added the forward slash ('/') key shortcut for commenting lines (in addition to the current 'B' key option).
- Removed the ancient Win32 api help file and the menu option to invoke it.
- Removed main editor Toolbar to be consistent with most other modern editors that have foregone the use of a dedicated toolbar.
- When files added to a Project, newly added *.BAS files are now treated as NORMAL rather than MODULE files.
- Tweaked "Check for Updates" to provide more reliable reporting in the event of failure to retrieve information from the server.
- Tweaked the F3 and Shift+F3 accelerator that will Find Next/Prev the last highlighted search text. It is now more consistent by not being reset to a different search term under some situations.
- Re-worked the Find/Replace popup dialog to be visually more appealing and to work better with keyboard. Added keyboard shortcuts for some find/replace actions (for example, Ctrl+Alt+Enter to Replace All).
- Added keyboard shortcut "CTRL+~" (ctrl+tilde) to allow you to move keyboard focus back to the active editing window. This is useful, for example, for jumping between the editing window and the Find/Replace dialog.
- Added keyboard shortcuts to move to next and move to previous compiler errors. This is a quick way to jump to and fix errors without having to use your mouse to double click the compiler error message in the Output window.
- Added "Explorer Categories" that allow user defined custom nodes to display in the Explorer window (only when used with an active Project).
- The Explorer window now allows for multiple nodes to be selected (via Ctrl or Shift) and to popup right-click menu to perform actions on the group of selected nodes (for example, to re-designate files to different FileTypes, etc).
- Code Fold points are now saved between Project and/or Sessions in the same manner as Bookmarks are treated.
- Disabled the functionality whereby if Find/Replace dialog is open and user switches to a different tab in the editor, then search highlights would automatically reposition the caret to the first found find text in the newly selected tab.
- Bookmark searches for Previous/Next Bookmark will now display in center of screen if Environment option "Position searches to middle of screen" is enabled.
- Find In Files corrected to properly process *.* files. In situations of *.* searches known binary formats are bypassed (eg. EXE, DLL, BMP, etc).
- Corrected issues whereby Replace All could fail to replace matching entries near the end of the edit buffer.
- Implemented Preserve Case option for Find/Replace. Currently, only supports preserve Full Upper Case or Full Lower Case preserve case replace.
- Added (-gen gas64) option for Build Configurations.
- Fixed bug whereby FindReplace window would not close when all other underlying code windows have been closed.

Visual Designer:
- New control property hWindowToolTip which will retrieve the windows handle for any tooltip created for a control.

Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: SeaVipe on March 25, 2022, 07:52:14 PM
Hi Paul, Thanks for this new release, very, very nice!
A couple of things:
1-The Output Window disappears when the Editor (not the Visual Designer) is open for the code of a form file. Reappears when the tab is moved to a module file.
2-I can rarely get consistency with Autocomplete for form controls. Works maybe 20%, but when it works it's perfect (same with previous versions).
3-Where do I find the list of functions for a given module (as in a dropdown)? F4 works but requires scrolling/searching to the open module.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 26, 2022, 08:55:08 AM
Thanks Clive!

Keep the reports coming should you find anything else that is broken, or even things that you wish was done differently.

(1) I will check into this.
(2) Autocomplete on visual designer controls is pretty bad it seems. I really need to make that much better.
(3) List of functions. Right now the only place is in the F4 list. I am not 100% sure if that is the best approach. I kind of miss the popup Function list from the existing WinFBE version as you can see a wide list of all functions more easily. I will judge by feedback whether to try to reintroduce that popup.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 26, 2022, 11:23:08 AM
Also, if you use the Light Theme, then I am certainly open to making color adjustments to the default values (especially the status bar because I am not sold on the blue color that I chose).
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 26, 2022, 02:52:32 PM
Quote from: SeaVipe on March 25, 2022, 07:52:14 PM
1-The Output Window disappears when the Editor (not the Visual Designer) is open for the code of a form file. Reappears when the tab is moved to a module file.
Thanks - this one is fixed now. The size of the tab control that switches between Code and Design was too high. I fixed that calculation. I'll ensure the fix makes it into any subsequent betas and/or final release.
Title: WinFBE v3.0.0-BETA-1 - Editor Scrollbars (Light & Dark Themes)
Post by: SeaVipe on March 26, 2022, 04:03:57 PM
Hi Paul, The Editor's scrollbars do not display arrows and the thumbs of both scrollbars go slightly off-screen. The bottom scrollbar is only about 2/3 as thick as the right scrollbar.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 26, 2022, 04:47:50 PM
Hi Clive, no arrows is by design. Most modern scrollbars these days do not show arrows. The thickness is also by design and is based on the size that VS Code uses. I assume that the reason is that horizontal scrolling is used much less of the time and it makes it less visually intrusive if that scrollbar is a littler narrower. I will check out what you mean by slightly off-screen.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: SeaVipe on March 26, 2022, 05:00:38 PM
Hi Paul, I thought perhaps "by design" might be the case!
Typically, I use the arrows to make small increments with the scrollbar as dragging the thumb sometimes moves things a bit too far.
As for the "off-screen", it may just be that on my machine the no-arrow look simply gives that impression. Probably not worth looking into.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Bumblebee on March 28, 2022, 07:37:51 AM
It looks good on my laptop, and I'm using a customized Windows theme.
I don't have much to critique, except that I miss the status messages and the toolbar.
Best IDE for FreeBasic by far!
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 28, 2022, 10:29:46 AM
Great, thanks for the report!

Quote from: Bumblebee on March 28, 2022, 07:37:51 AM
...I miss the status messages...
Can you elaborate a little bit? Status messages? You mean the text that displays in the statusbar during a project loading, file compiling, etc?
If yes, then most likely it is related to this message and bug report from Clive https://www.planetsquires.com/protect/forum/index.php?topic=4586.msg35095#msg35095
It happens when you are in visual designer mode (with the "Code" and "Design" tab control at the bottom of the editor). The window was sized too large and covered the statusbar messages. That is all fixed now.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Bumblebee on March 29, 2022, 05:48:14 PM
I can toggle the output window, but it's just a blank panel. That may be the problem Clive reported, but I'm unable to view any details within that panel.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on March 31, 2022, 04:41:39 PM
Here are the changes that I have made so far for an upcoming BETA 2

- Fixed visual error whereby statusbar area was covered whenever a visual designer form was active.
- WinFBE64 is now compiled using the -gen gcc -O 2 flags.
- Added right click popup menus for cut/copy/paste for textboxes that were changed to RichEdit (Find/Replace/CompilerLog/Notes).
- Added popup tooltip for Function list that displays the function prototype. Easier now to differentiate between overloaded functions.
- Fixed selecting function with multiple overloads would incorrectly always position the editor to the first instance of that function.
- Added some bcrypt* Win32 api keywords to the default winapi_keywords.txt file.
- Fixed issue whereby deleting a User Tool would result in a ghost entry in the User Tool top menu until the program was restarted.
- Updated the SetCompilerSwitchesII user tool to the latest version.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: David Roberts on March 31, 2022, 06:23:05 PM
Just out of interest, how many of you use the Projects feature?
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: José Roca on March 31, 2022, 07:12:02 PM
I use it when I need to add a manifest.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: David Roberts on March 31, 2022, 07:24:05 PM
I use '#Resource "<Whatever>.rc" terminating with ' 1 24 "Theme.xml" '.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Wilko Verweij on April 01, 2022, 12:48:30 PM
I tested the first beta earlier this week. Until recently I worked with 1.8.7 or so. Everything seems to compile fine. What I like about this version:
What I did not like/could not get working:
Two observations:

I did not test the form designer as I manually create all windows and do the message handling myself too.

I do not use Freebasic a lot anymore, I now mainly work in C.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Joerg B. on April 01, 2022, 01:06:04 PM
Hello to All

When I start something new, I exclusively use the "projects" function.  :)

Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on April 01, 2022, 05:41:25 PM
Quote from: Wilko Verweij on April 01, 2022, 12:48:30 PM
I tested the first beta earlier this week. Until recently I worked with 1.8.7 or so. Everything seems to compile fine.
Thanks Wilko for trying out the beta. I really appreciate it!

QuoteI could not display on the left the functions per file
Functions no longer display under the filenames in the Explorer. They are located on a dedication panel called Function List and can easily be brought to the visibile from by pressing F4.

Quotespaces in folder names are forbidden
This is by design because I could never find out why compiling would fail when folder spaces were involved. I think it relates to the spawning of a process and invoking the unix like gcc toolchain that traditionally has trouble with embedded spaces, or it could be related to the resource file compiling. I have tried everything I could think of including wrapping the paths in quotes.

QuoteUnder environment options, two times 'Code editor' appears
I know, because I could find a good name to call the second entry! They bother relate to code editor options  :-)

QuoteIn the 'find files'dialog, the three check boxes on the right should IMHO be option buttons, as only one can be selected at a time
I'll check this out.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: SeaVipe on April 01, 2022, 05:58:31 PM
From @Wilko Verweij:
QuoteI could not display on the left the functions per file
Paul, When the left panel is displaying the Functions List, would it be possible to have the view automatically scroll to and highlight the name of the function that the cursor is in? Sometimes when I'm distracted or otherwise taken away from the monitor, I need to refocus on the programming task at hand so depending on the number of lines in a particular procedure, I may need to scroll to the top of the function to refresh my memory (maybe that's just age-related:). Or am I missing something obvious?

Update:
I added a TabControl to a form now WinFBE crashes unpredictably.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Paul Squires on April 01, 2022, 07:26:30 PM
Hi Clive, I understand what it is that you're asking for.

I am worried of two things:

(1) The constant jumping around in the Functions List that may occur by constantly repositioning the list to the current active function. I kind of like having a static listing so I can easily pick out a function that I may jump to next rather than possibly having to scroll around for it. I see your point though.

(2) The performance issue. There is code within WinFBE that can determine the name of the current function that your cursor is in, however I expect that there would be a huge performance penalty by having to do that calculation every time the cursor moves (unless maybe an elaborate array of function line start and end points is maintained).

I think that I might have to ponder a little bit more about this request. If the performance penalty is not significant then maybe just displaying the current active function's name somewhere within the main GUI (statusbar?) would be better rather than repositioning the Function List.

I'd be interested in hearing from others should they have feelings about this one way or the other.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: SeaVipe on April 01, 2022, 07:31:52 PM
Hi Paul, yes, StatusBar would work for me. Now that I think about it, having the left panel highlight continuously moving, aside from the overhead, would also be distracting.
Title: Re: WinFBE v3.0.0-BETA-1 (March 25, 2022)
Post by: Bumblebee on April 01, 2022, 07:39:42 PM
I use the Project option when there is more than one form.