I have made some rework of the source code,
and made it a own repository on github that is now regularly updated.
https://github.com/manicken/arduinoAPIwebserverthere is also a README that explains the structure of the POST JSON
and the other functionality.
source code changes:
*each class have it's own file.
There is some work to do on the "main" API_Webserver.java
because it have 700 lines of code and I personally think that is too much.
I will probably make a separate class for the settings and the part that communicate directly with Arduino IDE.
New functionality:
* now there is the possibility to have a optional keywords.txt in the sketch folder (the project) so that custom keywords for own created classes can be made highlighted.
* @ HTTP POST each JSON item is now optional, but removeOtherFiles and files is used together in that order.
* @ HTTP POST there are now an keywords "object" that contains a list of additional keywords used by the POST:ed files, that keywords is stored in a keywords_temp.txt in sketch folder so that is available direct after the sketch/IDE is loaded.
* Autocomplete (because Arduino IDE uses RSyntaxTextArea) I found this
https://github.com/bobbylight/AutoCompletethat is using RSyntaxTextArea
this autocomplete function is activated on an empty line with ctrl+space
"live" autocomplete is not working at the moment.
note that the line can also contain some letters but then the words provided
must begin with that.
The autocomplete function uses a file located in the tool folder of this "Plugin/Extension" "c.xml"
that file contains all the words that is currently supported (it's contents is from the example provided by the author of AutoComplete)
there is not any words from the Arduino library,
but I plan to do a automatic lockup from the files located in
%arduinoInstallDir%\reference\www.arduino.cc\en\Reference
and auto generate a c.xml that can be put into the Arduino "Sketchbook location" (in preferences)
Also by looking at the source and did some experiments
I also found out that you can have a tools folder in above "Sketchbook location" there "plugins" like this can be installed,
that makes it much easier to install on every OS including mac.
Also I have read some threads here about missing functionality,
all those requested functionality
like
"theme editor"
"boards alphabetic/custom/mostUused order"
"store current processor in sketch(folder)"
and so on
everything that can be manipulated by Reflect can also be done with this plugin functionalty.
What is needed are some functionality like the library have to download and install plugins
It could off course also be made as an plugin, by anyone.
/Jannik