Author Topic: Bcx EDitor (BED)  (Read 21064 times)

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Bcx EDitor (BED)
« on: December 14, 2020, 07:46:53 PM »
This is BED ... short for Bcx EDitor

It is a 64-bit BCX code editor based upon the Scintilla 5.5.0 dll. 

https://bcxbasiccoders.com/bcxusers/mrbcx/bed.zip

BED Version 3.64       ( August 23, 2024  )

*********************************************************************
          Are you an existing BED user looking to update to a new version?
Unzip BED.zip to a temp folder then replace your old BED.exe with the new BED.exe
            Overwriting other parts of your existing BED folder is usually optional.
                        ( Updated Help Folder, Updated Syntax Files, etc )

*********************************************************************

*********************************************************************
                                    There will be no new 32-bit versions.
*********************************************************************
Below is the final 32-bit version of BED from August 2023. 
It is based upon the Scintilla 4.4.6 combined editor/lexer dll.
https://bcxbasiccoders.com/bcxusers/mrbcx/Bed32_Final_Version.zip
*********************************************************************

BED is MrBcx's heavily modified and active version of BCXIDE (2005) by Mike Henning
It is now based on the current (2024) Scintilla/Lexilla editor DLL's and is maintained and
extended using the latest version of BCX.  BED is a BCX code editor made specifically
for BCX BASIC users.

It's notable features include:

* Easy to use BCX language syntax color theme support.
* BCX keywords, Subs and Functions display in your choice of color, bold, and italic font
* Many common WinAPI functions and constants display in your choice of color, bold, and
* Bold, italic, and font colors can be changed via Tools | Settings | Appearance on the menu
* Select a word or phrase and Google it from within BED
* Snippets (blocks of previously written code) are easily added to the Main Menu. 
* Quickly get a project started using commonly used functions, subs, and more.
* User configurable popup lists ( C:\Bed\Lists\ F7, F8, F9, F10, F11, F12
* Search and Replace text is now stored between sessions via the Bed.ini file. 
* Search/Replace/Goto Line is on the (right-click) context menu for quick access.
* The latest BcxHelp Chm and a large Win32 help Chm are included.

The integrated BUILD dialog was completely re-written in August 2022 and
now supports Microsoft Visual C++, Mingw g++, Pelles C, and Lcc-Win32.

It is very easy to compile 32-bit or 64-bit GUI, console, and DLL's using BED.

Here is a short web video showing how the Build dialog works:

https://bcxbasiccoders.com/bcxusers/mrbcx/bed_demo.webm
The Build Dialog has changed since this video was recorded )

Unzip to your preferred location, install one or more of the supported compilers,
update the compiler path described in the included instructions, and begin enjoying BED.
If you enjoy developing with BCX, you will enjoy using this editor.

~ MrBcx ~
« Last Edit: August 23, 2024, 10:36:07 AM by MrBcx »

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #1 on: May 16, 2021, 08:49:27 PM »
Users can add, edit, and remove snippets simply by creating, editing, or removing text files. 
Your snippet files must be stored in a sub-directory (folder) off the main BED folder.
For example:  C:\Bed\Snippets\

The names of your Snippet files are the names that will appear on the Snippet menu.  Nothing is stopping you from using any file extension for your Snippets  (.txt, .bas, .bi, .mac, etc ).  If you want to use multiple file extensions, that's okay too.   My personal preference is no extension, because I don't want to see file extensions on the Snippets Menu.

The Snippets Menu is loaded at startup, so if you add,  edit, or remove snippets, you must restart BED.exe for the changes to take effect.  BED is currently setup to allow 650 snippets files and each snippet file can be up to 64kb in size.

Finally, when you use a snippet, any existing clipboard text is saved and restored after the snippet has been inserted into the editor.  If anyone wants to share some useful snippets, I can create a thread for that purpose.   
« Last Edit: November 09, 2023, 07:24:20 PM by MrBcx »

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #2 on: July 08, 2022, 05:33:37 PM »
The most notable improvement is with the Code Navigator.
I implemented the long-absent SORTING of the tree.

I've also added separate leafs listing SUBS and FUNCTIONS.  When you load a file, the tree
is loaded in file-order.  If you click the blue filter icon (second from the left) all nodes will be
refreshed and sorted alphabetically in ascending order which makes things much easier to find.

I've re-colored the four Navigator buttons and updated their tool-tips.

The syntax files have been updated with recent and soon-to-be new BCX keywords.

The right-click menu includes some tools that I've been using for a while:

* Lookup selected BCX keyword ... the lookup list is a work in progress.
* Google selected text ... this is real handy for looking up WINAPI info
* Webster selected text ... for definitions and spelling

Select ( highlight ) something in the editor, right-click and choose one of those search tools
to get the full experience.  I personally find these to be quite useful.

I've not included any add-in tools, in hopes of keeping anti-virus software from going bananas.   
« Last Edit: November 10, 2023, 11:48:30 AM by MrBcx »

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #3 on: August 17, 2022, 03:44:58 PM »
The current version of BED (BCX Editor) will always be linked at the top of this thread.
I've tried to make this version of BED (Bcx Editor) easy to setup and pleasant to use.

I decided to eliminate the Embarcadero compiler from this program because the "free"
community version is an ongoing hassle of downloading, updating, and re-registering. 
On top of that, Embarcadero is the most cumbersome compiler and linker system to
configure for 32-bit and 64-bit developments using BCX.  I simply ran out of patience
trying to integrate Embarcadero with BED.

BED supports up to four (4) compilers: Pelles, LccWin32, Mingw, and MSVC.
Install one or more, if you want to compile using BED. After you have your compilers
installed, browse into \Bed\Bat\

You will see these folders:

       Lccwin
       Mingw
       MSVC
       Pelles


  Inside each of those folders are a number of batch files that BED uses.
  The only file in each of those folders that you should need to edit is named
  Config.bat. Config.bat contains the base path of your compiler(s).

  Actually, the MSVC bat folder has Config32.bat and Config64.bat because Microsoft
  uses two sets of tools in two different folders to compile and link 32-bit and
  64-bit applications.  So, if using MSVC, edit both Config32.bat and Config64.bat

  All the batch files are setup using the folders that I use on my computers.
  Before you change anything, I advise you to make backup copies of the batch
  files that you can refer back to, just in case your edits don't work.


  After you have installed the compiler(s) on your computer, it should only take
  a few minutes to update the Config.bat files and then you can begin using BED.

* UNBLOCK the two (2) .chm help files located in \BED\Tools\Help

* Do not rename the folders or batch files.  The names are hardcoded into BED.

* Be sure to try out some of the color themes or tweak one that fits your style.
                    Go to Tools | Settings then Load Theme.

  ~MrBcx~
« Last Edit: November 09, 2023, 08:14:45 PM by MrBcx »

Robert

  • Hero Member
  • *****
  • Posts: 1237
    • View Profile
Re: Bcx EDitor (BED)
« Reply #4 on: August 17, 2022, 09:12:59 PM »
Hi MrBCX:

Its looking good. I made my own SciLexer.dll and had to make a few, very few, tweaks, to get Bed to compile with Pelles C and run as expected.

Screen shot attached.

Thank you.
« Last Edit: August 24, 2022, 01:45:13 PM by MrBcx »

dragon57

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: Bcx EDitor (BED)
« Reply #5 on: August 18, 2022, 01:51:37 AM »
Outstanding. More than I could have hoped for. Juggling multiple projects at the moment, but should be able to update my old installation very soon.

I tip my virtual hat to you.

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #6 on: August 21, 2022, 05:21:43 PM »
I uploaded a new version of BED (BCX Editor).  Permanent link at the top of this thread.

The Build interface is more flexible.  See screenshot.

The default build with all four compilers will NOT include a DPI manifest file.  If anyone wants one linked in, simply set the CheckBox and BED will link one automatically.  Alternatively,  leave the CheckBox unchecked and include our own customized manifest file, if desired.

I also made it a bit easier when picking a color Theme, and other small improvements.

Enjoy!
« Last Edit: September 15, 2022, 02:55:32 PM by MrBcx »

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #7 on: August 25, 2022, 10:58:00 PM »
I fixed a couple small bugs and added a few more Themes bringing the total to 25.

It should be easy to find one that you like   ;)


Black              BlueMoon
Bright             DarkMagic
DarkSolar1         DarkSolar2
DarkSolar3         DarkSolar4
Default            GreenEnvy
Hanselman          LegalPad
LiteMonokai        LiteSolar1
LiteSolar2         Nord
Obsidian           QB
TextDark           TextLite
VB6                VSDark
Vasuki_Dark        VimDark
Zenburn


« Last Edit: August 13, 2023, 05:49:43 PM by MrBcx »

dragon57

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: Bcx EDitor (BED)
« Reply #8 on: August 25, 2022, 11:49:45 PM »
That theme list is very nice. I'm hooked. Thanks!

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #9 on: August 26, 2022, 12:10:35 PM »
That theme list is very nice. I'm hooked. Thanks!

I'm pleased ... the next version of Themes will be able to Save/Load different font faces/sizes, per Theme file.

Already implemented and in testing.

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #10 on: August 29, 2022, 02:20:13 AM »
I'm learning how to implement CALLTIPS and AUTOCOMPLETE using the Scintilla control.  It's rather confusing!

Using the Scintilla documentation and several half-baked examples from others, I was able to come up with something workable, by adding a few of my own ideas.  The only Calltips that I've implemented are most of the built-in BCX functions, and only the ones that require parenthesis for their arguments.  The left parenthesis triggers the calltip lookup.  That covers about 300 functions but there are more puzzles to solve, if I decide to keep going with this and get more of the language into calltips.

I've also sorted out how to implement an AutoComplete popup box which, although mildly useful, is more a reminder to myself how I did it.

I haven't decided whether I'm going to make these changes permanent and I'm not ready to release them yet.

This link is to a small web video showing how these things currently look in BED. 

https://bcxbasiccoders.com/bcxusers/mrbcx/bed_demo2.webm

jbk

  • Sr. Member
  • ****
  • Posts: 277
    • View Profile
Re: Bcx EDitor (BED)
« Reply #11 on: August 29, 2022, 07:21:18 AM »
hello MrBcx
I like the calltips, they can be helpful reminders, but I seldom find autocomplete useful, more often than not they are nuisance and an obstacle to my typing

Ad_Rienks

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Bcx EDitor (BED)
« Reply #12 on: August 29, 2022, 09:41:41 AM »
hello MrBcx
I like the calltips, they can be helpful reminders, but I seldom find autocomplete useful, more often than not they are nuisance and an obstacle to my typing

For me autocomplete is often helpful. I am used to it and like it, as it is in VSCode + tabnine extension. It would be great if Bed could also have something similar!

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 2229
    • View Profile
Re: Bcx EDitor (BED)
« Reply #13 on: August 29, 2022, 10:18:58 AM »
hello MrBcx
I like the calltips, they can be helpful reminders, but I seldom find autocomplete useful, more often than not they are nuisance and an obstacle to my typing

I agree on those points.  Having a constantly popping up auto-list is very distracting and is really only useful in the insanely verbose languages like Java and all the .Net languages.  That's why I was particularly keen on the last sentence in the following section of the Scintilla documentation about AutoCompletion:

Autocompletion is triggered by your application. For example, in C if you detect that the user has just typed fred. you could look up fred, and if it has a known list of members, you could offer them in an autocompletion list. Alternatively, you could monitor the user's typing and offer a list of likely items once their typing has narrowed down the choice to a reasonable list. As yet another alternative, you could define a key code to activate the list.

That emphasized alternative is what I've implemented in the second half of my demo.  Scintilla calls such implementations "USERLISTS" that employ most of the same Scintilla API and techniques that implementing AutoCompletion uses.

My list containing "AS INTEGER"   "AS SINGLE"  "AS DOUBLE"  "AS STRING"  is not automatic, it is only activated when a user presses the F7 function key.  I imagine more function keys could be loaded with different categories of lists: console commands, gui commands, directives, user variables, types, function / sub prototypes, and many more possibilities. 
 

« Last Edit: September 14, 2022, 10:32:33 AM by MrBcx »

dragon57

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: Bcx EDitor (BED)
« Reply #14 on: August 29, 2022, 11:20:03 AM »
hello MrBcx
I like the calltips, they can be helpful reminders, but I seldom find autocomplete useful, more often than not they are nuisance and an obstacle to my typing

Generally agree on both points. Autocomplete CAN be helpful if you are new to a language. If you implement and release, having a quick way to toggle it off/on might be very helpful.