Writing ACF Functions: Improved Workflow
At Horneks, we’ve always authored our ACF scripts in external editors — most recently using TextMate — where the source code lives in text files and is manually loaded into FileMaker for compilation.
The typical workflow looked like this:
- Write or edit ACF code in a standalone text editor.
- Load the code into a FileMaker field.
- Compile it via the ACF plugin.
- If errors occurred, return to the editor, fix them, and repeat the process.
Although effective, this process introduced friction — especially in debugging. Every syntax error required a cycle of switching between tools, reloading, and recompiling manually.
A Better Way: Inline Validation in Sublime Text
We’ve now made a major improvement: you can syntax-check ACF code directly inside Sublime Text, before loading it into FileMaker. This significantly shortens the feedback loop when authoring new packages or updating existing ones.
Also with the new auto-complete defenitions for the ACF language, it is easier than ever to write ACF code. Look at images at the bottom of the article.
Introducing the Standalone ACF Compiler
We’ve separated the compiler logic from the ACF plugin and created a standalone command-line compiler. This tool provides:
- Immediate syntax validation from the terminal or Sublime Text.
- The same rules and logic as the embedded plugin compiler.
- Output of
.dsCompbinaries compatible with the ACF plugin runtime.
You still compile inside FileMaker when deploying to a solution, but now, most authoring and iteration can happen externally — faster and with less friction.
Accurate Dependency Resolution
ACF packages can USE other packages and call their functions. In the plugin environment, this works because all referenced packages are already loaded into memory.
To replicate this in the standalone compiler, we introduced dependency tracking:
- Compiled packages are tracked in a lightweight JSON database.
- During compilation, the tool scans for
USEstatements, loads dependencies recursively, and ensures functions exist and match expected parameters. - The database lives at:
~/Library/Application Support/ACFcompiler/depJSON.json
This guarantees that the standalone compiler performs the same validations as the runtime.
Bundled Sublime Text Support
The DMG archive can be downloaded from Downloads here on this site.
Inside the DMG installer, you’ll find a Sublime-ACF-Support/ folder. This contains:
- Syntax highlighting rules for ACF.
- Build commands for invoking the compiler.
- Error highlighting and navigation.
- Indentation defenitions
- Auto completion defenitions for the ACF language (266 embedded ACF-language functions)
To install: Copy the files from the Sublime-ACF-Support folder into this path:
~/Library/Application Support/Sublime Text/Packages/User/
Run the installer package inside the DMG archive to install the standalone compiler.
Once installed, simply open any .acf file in Sublime Text and press Cmd+B to compile. Errors will be highlighted inline, and output is shown in the build panel.

Here the parameter declaration in myNUMf was clearly misspelled. Correcting it and pressing Cmd+B again did the trick.

Autocomplete for the ACF language.
Width over 266 auto-complete entries containing function names and parameters makes it very easy to catch the right spelling of the function names and adding the correct parameters.

Selecting the Excel_Create function inserets it with the parameter prototype.

Conclusion
This update modernizes and streamlines the ACF authoring process:
- Faster syntax checking.
- Fewer context switches.
- True IDE-like feedback inside Sublime Text.
You can still compile and run inside FileMaker as always — but you’ll spend far less time hopping between windows to track down a missing semicolon.
