This function should return a formatting function that can be used to format the value if applicable.
Formatting functions should look like this:
(fn [value old-value]
Formatting funtion should have a
format-chars meta-data entry, which will be used to correctly position the cursor after formatting. Formatting function should be able to take in the formatted data, extract the value and format the data again. It should also handle corner cases like
nil or empty string.