Me personally, I am against generating code off of the indexes for a few reasons. One, they can be removed for performance, which could cause you to do a generate, copy paste, etc. If you want to use the indexes, I would assume you would need to add the SQL in your provider to do so, and add it to the State property of for the EntityField objects just like the precision/scale is being handled. Off of indexes though, you would probably need to return back if it is unique or not to determine whether or not you are returning back a collection or an object as well.
I personally use target tags, because it is contained in the generator. I know some work environments that may have "help tickets" can slow down development, so I think the generation should be as decoupled away from the database as much as possible.
Anyways, this is just my opinion. Let me know if you need help.