MonkeybreadSoftware Posted November 2, 2023 Posted November 2, 2023 As you may know we have a variable check for FileMaker script workspace for macOS in MBS FileMaker Plugin. This works fine for most scripts, but you may need to know a few pitfalls. Since the plugin reads what is in the script workspace window and FileMaker truncates long lines, it will not catch a variable mistyped in a very long line. When we read a calculation like this one: Let([ // define some variables $varDefined = 1; $secondVarDefined = 2]; $varDefined) The plugin sees it as Let([ // define some variables $varDefined = 1; $secondVarDefined = 2]; $varDefined) We don't get line breaks, so we have no idea where the comment ends and thus we can't find mistyped variable there. There has been a problem that not scanning Let() for variable definitions, we now allow you to add a comment in front of the Let() or custom function call to define the variables: Start with a // comment and add they keywords @variable, @parameter or @constant (or shorter @var, @param or @const), then add a new line and continue with the calculation. comment and add they keywords @variable, @parameter or @constant (or shorter @var, @param or @const), then add a new line and continue with the calculation. e.g. // @var $varDefined, $secondVarDefined Let([ // define some variables $varDefined = 1; $secondVarDefined = 2]; $varDefined) ] The plugin will recognize the comment and accept the variable even as we can't parse the Let statement due to missing line breaks. Here is a test script showing various checking situations. # you define a variable regularly Set Variable [ $var1 ; Value: 1 ] # and use it Set Variable [ $var2 ; Value: $var1 + 1 ] # now we define one via comment in Let() Set Variable [ $test ; Value: // @var $varDefined, $secondVarDefined Let([ // define some variables $varDefined = 1; $secondVarDefined = 2]; $varDefined) ] # or here in a comment line to define a variable set by custom function: # @var $thirdVarDefined Set Variable [ $test ; Value: SomeCustomFunction ] # or now with comment inline: Set Variable [ $test ; Value: // @var $thirdVarDefined SomeCustomFunction ] # and use them Set Variable [ $r ; Value: $varDefined + $secondVarDefined + $thirdVarDefined ] # If you don't declare it, we may catch it as an error: Set Variable [ $test ; Value: Let([$NotDefined = 1]; 1) ] Set Variable [ $test ; Value: $testing + 1 ] # and this includes using an accent, which gives a different name: Set Variable [ $test ; Value: $varDefíned + 1 ] Please try MBS FileMaker Plugin 13.5 pre-release to try this and let us know if you find a problem or just like this new feature.
Recommended Posts