I have just complete as month long task of developing a highly complex library in C# (a parser that uses ANTLR) together with claude and cursor and it worked very well. For me trick was to do test driven development and write all the tests first. Then after each code change rerun the tests.
This made it very easy for claude to work out what to do and what needed to be corrected for things to work. Then you get your tests either to write debug statement to the terminal or json serialize something to disk you can paste into the claude chat that helps claude understand the flow of the code and where things goes wrong.
As an added bonus having all those test alse made it easy for claude to write the documentation.
I will not say it was fun because you are sitting doing copy paste all day but i couldn't have written this library without the assistance from clause. cursor just reduced the amount of copy paste actions since it can update the files.
Can Cursor actually update the files? Because I've seen many examples and complaints, most recently from my developer, that it says it's changing the files, but nothing actually changes, and when pressed, says it can't actually change files.
I've found numerous threads about this issue on their forums too.
In the chat sidebar dialog there are two submit buttons. The one labelled "chat" cannot edit the active file and when you chat using that submit button it doesn't understand your code base.
The submit button labelled "Codebase chat" on the other hand can update the active document and has knowledge about your project.
In the codebase chat dialog it will print the suggested changes and then you must press the apply button next to the suggested change. then it will apply the changes to the file in a git compare kind of way with red and green colors. Finally you must accept each of the red/green changes and the file will be updated on disk.
An alternative is aider that can edit multiple files at once. It performs a git commit after each changes which drove me nuts and didn't fit into my workflow. With cursor you decide when to commit to git which i like better.
This made it very easy for claude to work out what to do and what needed to be corrected for things to work. Then you get your tests either to write debug statement to the terminal or json serialize something to disk you can paste into the claude chat that helps claude understand the flow of the code and where things goes wrong.
As an added bonus having all those test alse made it easy for claude to write the documentation.
I will not say it was fun because you are sitting doing copy paste all day but i couldn't have written this library without the assistance from clause. cursor just reduced the amount of copy paste actions since it can update the files.