The story behind syntax highlighting in Filemaker

Roland wrote a blog article on about how we started with the syntax highlighting in Filemaker with our plugin.

In english, as his blog entry is in German:

Saturday night after the FileMaker conference in Salzburg: a few participants sat together in a casual round in the hotel bar, drank a couple of beers and discussed - what a surprise: FileMaker. "Oh," I said. "Syntax highlighting, that would be cool." - "Hhm, let's see ...", Christian Schmitz of Monkey Bread Software murmured almost inaudibly.

Sunday I received an email from Christian. "Check out the latest beta version."
Overnight Christian has implemented the syntax highlighting in FileMaker scripts and in the formula editor!

Gradually he refines the features. Fine, fine!

I want to show current status: A picture is worth a thousand words. Christian, I say THANK YOU!

Thanks to Roland for the idea and for the help on testing it. If you like, to try it, please download our beta plugin.

MBS Filemaker Plugin, version 3.0pr6

New in this prerelease of the 3.0 plugins:
  • Added URLScheme.GetDefaultHandler.
  • Renamed SetDefaultHandlerForURLScheme function to URLScheme.SetDefaultHandler and InstallURLEventHandler to URLScheme.InstallURLEventHandler.
  • Changed Syntax Coloring to be lowercase. So please reset settings with SyntaxColoring.FactoryDefaults.
  • Added window functions for fullscreen mode on Mac OS X.
  • Added SyntaxColoring.GetTag and SyntaxColoring.GetTags.
  • Added SyntaxColor tag names for defining your own colors for calculations.
  • Added MovieView functions.
Download at

MBS Filemaker Plugin, version 3.0pr5

New in this prerelease of the 3.0 plugins:
  • Added SyntaxColoring.Clear and SyntaxColoring.FactoryDefaults.
  • Added Syntax Coloring with rule # for comments.
  • Added XML.Query for XPath queries on XML text.
  • Syntax Coloring does now take up to 5 words for matching and matches longer tags first.
  • Fixed memory leak in OCR.setImage function.
  • Fixed a potential bug in syntax coloring.
Download at

Syntax Coloring Improvements

Today we worked on the syntax coloring and found a new use for it. You can tell the plugin now to highlight longer texts and specify script steps which would be an error. Like this: MBS( "SyntaxColoring.AddTag"; "Enter Find Mode [Pause]"; 1; 0; 0 ) So all Enter Find Mode script steps with Pause will be shown red. This way you can highlight your errors. Available in next plugin prerelease.

MBS Filemaker Plugin, version 3.0pr4

New in this prerelease of the 3.0 plugins:
  • Did some fine tuning on the text coloring so the font size is preserved.
  • Changed SQL.NewCommand function to automatically set scrollable option for new commands.
Download at

PHP Functions in MBS Filemaker Plugin

With our 2.9 plugin function we added PHP functions. Those functions allow you to load the PHP library from file system and use it. This gives you tons of new functionality with our plugin for either reusing PHP code from your website or by solving new issues with PHP. (more)

Web app and space character

One of my clients recently asked about space characters on web apps. He is used to sometimes put more spaces in the text to increase the distance between words. But with a website, those spaces have no effect.

If you put several spaces in a string, the web browser will compact that to one space. Except if you use a non breaking space. To create a non breaking space on Mac you simply type option-space (alt key and spacebar). On Windows it depends on the application. For example in Microsoft Word and Open Office, it is Ctrl-Shift-Space.

If you are familiar with asc() function in Real Studio, we can tell you that normal space has code point 32 and non breaking space has 160. The unicode standard actually has 12 other different space characters with different width and other properties.

In HTML when sent to browser, the non breaking space will be encoded as   and the browser sees that as content for displaying. This is something I used years ago to have empty table rows in html have the high of normal text rows by using those spaces there.

MBS Filemaker Plugin, version 3.0pr3

New in this prerelease of the 3.0 plugins:
  • Added SQL.GetFieldAsJPEG, SQL.GetFieldAsPNG, SQL.GetParamAsJPEG, SQL.GetParamAsPNG and SQL.SetParamAsContainer.
  • Added GMImage.GetJPEGAsBase64, GMImage.GetJPEGAsHex, GMImage.GetPNGAsBase64, GMImage.GetPNGAsHex, GMImage.NewFromBase64, GMImage.NewFromHex.
  • Changed Container.GetDataURL to also work with PDFs.
  • Added some color for text and brakes in text edit.
  • Added String.DecodeFromBase64 and String.EncodeToBase64.
  • Added parameters for Audit function, so you can now pass "fieldname|value" to set additional fields in Audit call in your AuditLog table.
  • Added color feature so that MBS in calculation editor is blue.
  • Fixed Audit Function to work in Filemaker 10. BaseTable and Tables must match here and we can't query TableID/FieldID.
Download at

Calculation Editor Upgrade

What do you think about this picture on the right?

Do you like the idea?

Today I added a little bit color to this. I'm curious about what people think about it and if it makes trouble in other Filemaker dialogs as the color is a global thing. The plugin can color the field, but has no idea which field it is coloring currently.

MBS Filemaker Plugin, version 3.0pr2

New in this prerelease of the 3.0 plugins:
  • Added syntax coloring for Filemaker 11/12 on Mac.
  • Added FM.ExecuteSQL.LastErrorMessage to get error message of last SQL command.
  • Added SystemInfo.Time
  • Changed Container.GetTotalSize and Container.GetTypeSize to work with referenced files.
  • Added WebView.RenderPDF function for Mac.
  • Added WebView.RenderImage support to Windows, not perfect, but works often.
Download at

Syntax Coloring for Filemaker 11 and 12

A picture says more than a thousand words. You see the color on the right?
Soon everyone using the MBS Filemaker Plugin can have this. By default we color if commands blue and loop commands green.
Maybe we even make it configurable. Stay tuned.

Will probably available in the next days with the next 3.0 prerelease.
What do you think about this idea?

Technically this script commands are shown on Mac OS X using a standard table. The plugin registers a callback to receive an event whenever the text drawing functions in the table want to draw something. We check the text and change the text color.

Functions added on the Filemaker Conference

In the last three days I got a lot of requests and ideas for new plugin features. And between the discussions I had some spare time for coding. So we got this new functions:
  • SystemInfo.Time
    Queries current system time in seconds with nanosecond precision. Good for timing how long something takes.
  • FM ExecuteSQL LastErrorMessage
    After executing a FileMaker SQL command, this function can give you the error message. Normally you only see the error in the data viewer in Filemaker, but here you can get the error in a script.
  • WebView RenderImage
    For Windows, I added some support to this function. Basically we print to an image. But some websites don't like that and some things simply do not print.
  • WebView RenderPDF
    This is a new function for Mac OS X to render a website to a PDF. Nice for storing a screenshot of a website. This gives sharp text and is often smaller than just a screenshot.
  • WebView Screenshot
    As Windows made trouble with getting image, I also added a screenshot function. This one takes a screenshot of exactly the position of the webviewer. This way you have a preview of the website to store, like for a thumbnail.
Have a nice year and see you again 2013 on the next conference in San Diego or Salzburg.

Got a FileMaker Magazin Award for Best Plugin!

What a surprise! I just got one of those awards in front of 200 people on the conference :-)

Thank you FileMaker Magazin.

See also:

This conference is great so far with so many people and even Filemaker CEO came to visit us.
I met a lot of people and got a lot of new ideas for new plugin functions.

MBS Filemaker Plugin, version 3.0pr1

New in this prerelease of the 3.0 plugins:
  • Fixed bug in Path.FilemakerPathToNativePath and Path.NativePathToFilemakerPath on Windows.
  • NSUserNotification works now even if Filemaker is frontmost.
Download at

Next week Filemaker Conference 2012 in Salzburg

Just one week left. If you join the conference in Salzburg, it would be nice to meet you and talk about plugins with Filemaker. Also if you use our plugins, we'd love to see what you use it for.

For more details, please check the website.
With the coupon code "mbsplugin", you get a 10 Euro discount on the conference ticket.

MBS FileMaker Plugin 2.9 for OS X/Windows - More than 1200 Functions In One Plugin

Nickenich, Germany - MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 2.9 for Mac OS X or Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, Mac, and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 2.9 has been updated and now includes 1200 different functions, and the versatile plugin has gained more than 100 new features:
  • We added new OCR functions which allow you to use the open source tesseract 3.01 library to recognize text in images. This works nice with images in Filemaker containers and provides text for full text search in media databases.
  • With our XL functions and the libXL library, you can read and write content to Excel files. No need for Microsoft Excel being installed. Especially you can write reports by loading a template Excel file and adding your data. Also you can create customized import functions to read data from Excel files. LibXL supports several Excel versions and supports both the older xls files and newer xlsx files.
  • You can now use PHP again in our plugins. We updated those functions to work with current PHP library. You can execute PHP functions, work with various extensions and call back from PHP code to your Filemaker scripts.
  • We now include our Runtime Shrinker application with our plugins. This application can reduce the size of a Filemaker runtime application by over 50%, depending on the settings like which languages or libraries to remove. Try it and enjoy faster downloads of your runtime solutions.
Read about all changes in detail in the release notes on our website. Please also take time to check our more than 100 example databases showing you the functionality of our plugin.

MBS Filemaker Plugin, version 2.9fc

New in this prerelease of the 2.9 plugins:
  • Cleanup of Examples and Documentation
Download at


Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008