but the value in the plugin didn't change accordingly, even if I refreshed the list. Note: my F4 editor is a script that spawns the actual text editor, so the script exits while the editor is still running. Could this explain why F4 editing didn't work for me?
I do not use my own editing handling. But use standard TC functions. First, TC downloads a file from plugin, runs an editor and waits for editor process exits. Then, after process exits, TC checks file modification and if file was changed it ask for file upload back to plugin. The only functions made by plugn: download file and upload file.
In your case, TC wait for script process exiting thinking this is an editor, end when your script exits before real editor, TC think file was not changed and do not suggest uploading back to plugin.
So, you should modify your script to wait until real editor process exit.
I understand your way of reasoning but I think you should reconsider adding your own editor handling and settings, and here's why.
Your plugin requests TC to upload back if the edited value has changed, and relies on TC to _always_ know when the value has changed indeed. However, TC can't always know, for instance, when there is a middleman in between TC and the editor TC can't know that the value has changed (unless the middleman does something special - see #1 further down).
The middleman case is more frequent than one might think. I use F4Menu.exe as my middleman - and I'm pretty sure that several other users in this forum do also. Other users favor other middlemen, this very forum section discusses at least three different F4 middlemen. When any such middleman is involved TC can't know that the editor is still running, so your plugin can't update a changed value.
Who is in a position to fix this situation; the user, the middleman, your plugin or TC? I think your plugin is in the best position (and interest).
Possible solutions I can think of:
1) user change the middleman so that middleman waits for editor to exit
2) you disable the F4 edit function in your plugin
3) you keep the F4 edit function but handle it within your plugin
IMO, option #1 is unreasonable from a user's standpoint because in most common usage cases users don't need for the middleman to wait for the editor to exit - and they don't want to keep the middleman process running unnecessarily.
Waiting for the editor to exit is only needed when TC has to do something after the editing has finished. In your case TC needs to handle the changed value back to your plugin, and this is why your plugin should care about the robustness of the whole chain of events.
I would argue the same of any plugin which expects to be handled changed data back from TC, not just of your plugin.
IMO, option #2 is quite reasonable. After all a user can already change the value by double-clicking it.
Anyway, thank you for your plugin, I enjoy using it.