When I select a string function from the left banner of the the 'Text Editor' window, I notice that the function in the main window will only indicate required attributes to specify.
For example, when selecting 'FindString', in the main window the example text '@FindString(<string>,<strToFind>)' is shown. However, if I look at the documentation on the string functions: https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Transformers/!Transformer_Parameters/StringFunctions.htm,
I see that also the following optional parameters can be passed on to this string function: [startIdx] and [caseSensitive].
What I think is a bit strange however, is when I select a math function that has optional parameters, it will show the optional parameters for that function in the main window of the Text Editor/Arithmic Editor. Consider for example the floor function; selecting it will show '@floor(<float>,<precision>)' in the main function of the window, whereas the precision parameter is in fact an optional parameter.
See also the documentation on the math functions here: https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Transformers/!Transformer_Parameters/math_functions.htm
I was wondering why there is this distinction in whether to show or not show the optional parameters of the math/string functions in the main window of the respective editors. Is this because the optional parameters of the math functions are more frequently used?
To me it seems best if it could be implemented to always show all parameter options, but also show which parameters are required and which are optional, by using the same notation as used in the documentation pages of the string/math functions.
So for example, for the math function the required/optional parameters can maybe be shown in the main window like '@floor(<float>,t<precision>])'?
Similarly for the string function the required/optional parameters can maybe be shown in the main window like '@FindString(<string>,<strToFind>,g<startIdx>], ;<caseSensitive>])'?
Also, I noticed that when you hover over the functions an example text shows about the function, which does show the required and optional parameters.
Here however I think it is a bit strange that in some cases there seem to be some discrepancies between the naming conventions/functions shown in this 'overlaying field', and what is shown at the documentation pages.
For example, for the string function the 'overlaying field' shows '@ConvertEncoding(<dstEncoding>,<string>,n<useBytes>])', see also the attached screenshot, whereas at the documentation page of the string function states 'ConvertEncoding(str1, str2, caseSensitive])'
Here the optional parameters 'useBytes' and/or 'caseSensitive' seem to be designed for quite different behaviour :|
Curious to hear about other thoughts on this.
Thijs