Periodically there are discussions in our community about the MapBasic 'IDE'.
It is outdated but functional. The MapInfo Pro development team is reluctant to divert our limited resources into developing and maintaining a more modern IDE, which we give away for free.
Here is a possible approach to remedy this situation.
If we can officially or unofficially support an extension to a full featured IDE, we can give MapBasic developers the kind of tool and development experience they expect and deserve.
One good choice for this could be Visual Studio Code.
If is freely available, open source, and highly extensible.
Try out this visual studio code language extension we have created for the mapbasic language.
Currently it supports syntax highlighting and some snippets along with a build task for compiling and linking.
We would even consider making the language extension as open source to collaborate with our passionate developer community.
The potential is there for much more. Anyway give it a try to see what you think.
You can get visual studio code here for free:
To install the extension, click on the extensions button on the left and then choose Install From VSIX from the options menu as shown.
To use. Open up the folder where your mapbasic application lives.
For example c:\program files\mapbasic\samples\animator
You should be able to see syntax highlighting and some snippets.
To use the build task, you currently have to copy the tasks.json file from the language install folder into the .vscode folder in your application folder.
For example copy %USERPROFILE%\.vscode\extensions\pitneybowesmapinfo.mapbasic-0.0.8\tasks.json to c:\program files\mapbasic\samples\animator\.vscode\tasks.json
Then you can use the build task ( Ctrl+Shift+B ) to build your project and see any errors in the problems window (Ctrl + Shift +P).
The build tasks calls mapbasic with either the mapbasic files in your folder, or if you have a project file (.mbp) it calls mapbasic with the modules listed in there and also passes the link flag to mapbasic.
Note that if there is a .mb file with the same name as the module it will try to compile it, but if there is no mb file it uses the .mbo.
Also note that mapbasic does not remove the previous .mbo when a compile has errors.
So it can build the whole project at once.
Of course you need to have MapBasic installed for the build task to work.
The build task tries to locate mapbasic via the registry (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\mapbasic.exe)
or the MAPBASICEXE environment variable.
You can also modify the task.json to pass the path to mapbasic.exe as an additional argument.
Please reply with your thoughts on this.
Is it a good idea? Would you use it? Would you contribute?
Even better, give it a try first.
Software Architect and Distinguished Engineer
MapInfo Pro Development Team