It is very useful, but it is a stupid Clark and no manager. Do not expect it to write complete units. It keeps mixing up the syntax with Delphi. After this it gives you hints, what you shall change, that your Lazarus compiles. Then you get the hint to re-install your OS. Follow its hints and your computer is dead.
What it is good for: Give it one method and ask it, to write a similar one for a different purpose.
Tell it, to write tedious code and care, it does not tell you "and the rest the same".
And it keeps to imagine properties. If you say, "I cannot paint it, write me a code". Then it says, "RichEdit.paint";
Does not exists? - no worries.
It is important you never discuss with it. This makes it run into internal loops and give you your own text back mixed with pure new nonsense. If you once came into a stupidity argument with it - relog.
Unfortunately, it tends to change var names. You must read the stuff and check it.
So: It is just a machine, give it small tasks and force it to do them one by one.
The more complex a loop gets, the less you can use CI.
Where you can use it fine:
- key in a string and ask to split it
- key in a name and ask the fitting unit for it
- key in a table and let it make queries