Is there anything we could do at JRiver to make this process easier? Thanks so much for the contribution!
I like Fitbrit ideas. If you decide to use the symbol font from this thread, please reward the creators with a minimum of a lifetime JR license
Some other suggestions:
1. The Field editing UI should have a button to open a bigger/more featured Expression Editor window, with some nice features:
- syntax highlighting
- matching bracket highlighting
- syntax tooltips for the function names and arguments (à la Visual Studio) would also be nice
- an "insert symbol" button could show the symbols from the excellent font in this thread, or from other fonts
- a "preview" panel, perhaps using the currently selected movie. For most expressions the preview is simple, but for Tooltip it's really awkward to keep having to close the options to see how it looks, then go there again to make a change, close again... etc.
2. An alternative whitespace handling method could also be declared, either by using a new SetMode() function or preprocessor-style directives:
SetMode(whitespace, 1)
or
#whitespace 1
Zero would be the current mode (default), and 1 would be EXPLICIT whitespace mode.
Following this directive, all whitespace (except between words) would be ignored allowing for proper code indentation, code comments (another feature), etc. Explicit whitespace would be introduced as in HTML, with < p >, < br >,  , etc. < pre > could also be supported. Alternatively (or on top), the standard \n could also be supported, and perhaps \t and \s for a space.
Other preprocessor directives could be introduced in the same way.
3. Support for some more HTML tags would be nice. < hr> comes to mind. < center > would also be great. I guess CSS is asking too much
4. Adding alignment/tables would be awesome. This could be with html (table/td/tr) or with markup-style tables.
5. Expression language could use a few more functions. Just look at the convoluted code in this thread, sometimes just to get to a simple value at the end. Examples:
- repeat(\n,30) // repeat a char/string N times.
- ifCase(expression, 1, ValueFor1, 2, ValueFor2, 3, ValueFor3, ...) // switch/case implementation
That's it for now, I hope some of these make sense to you