JSONedit: preprocessor (Lua scripting)
JSONedit 0.9.16 introduced text preprocessing using Lua scripting. This function allows to pass text entered in tree view through Lua before using it. Initially it was intended for tasks that were simple (converting characters to lowercase, removing accidentally entered newlines) yet too specific to add to application itself, but it can potentially do more complex processing like creating text shortcuts that expand to full text with Lua.
JSONedit uses two separate scripts: for node name nad for node value preprocessing. They must be placed in application directory.
Example: InputNamePreprocessor.lua
inputString = GetInputText() -- required: read input string
-- print(string.format("inputString = %s\n", inputString))
-- convert to lowercase
outputString = string.lower(inputString)
-- remove newlines
outputString = string.gsub(outputString, "\r", "")
outputString = string.gsub(outputString, "\n", "")
-- print(string.format("outputString = %s\n", outputString))
SetOutputText(outputString) -- required: set output string
Example: InputValuePreprocessor.lua
inputString = GetInputText() -- required: read input string
inputType = GetInputValueType()
if inputType == 3 then -- combobox type index; 3 = string
do
-- print(string.format("inputString = %s\n", inputString))
-- convert to lowercase
outputString = string.lower(inputString)
-- remove newlines
outputString = string.gsub(outputString, "\r", "")
outputString = string.gsub(outputString, "\n", "")
end
else
do
outputString = inputString;
end
end
-- print(string.format("outputString = %s\n", outputString))
SetOutputText(outputString) -- required: set output string
Example: InputNamePreprocessor.lua - simple text substitution / expanding / autocorrect
inputString = GetInputText() -- required: read input string
-- print(string.format("inputString = %s\n", inputString))
-- convert to lowercase
outputString = inputString -- default value
tmpString = string.lower(inputString)
substitutions =
{
["alin"] = "Abraham Lincoln",
["abelin"] = "Abraham Lincoln",
["gwash"] = "George Washington",
["jada"] = "John Adams",
["tjef"] = "Thomas Jefferson"
}
if (substitutions[tmpString] ~= nil) then
outputString = substitutions[tmpString]
end
-- print(string.format("outputString = %s\n", outputString))
SetOutputText(outputString) -- required: set output string
Note: scripts are reloaded at startup or when settings are applied.