Fix Component require() IDE integration#18165
Conversation
The crux of it is that adding it to the struct required a "hack" where we layered an additional attribute proc maco on top of the normal derive macro. This broke all Rust Analyzer integration (autocomplete, go-to-definition, doc hover on required types, etc). That is the only known method of adding docs directly to the struct. We had to pick one, and we chose Rust Analyzer integration. This is obviously a tradeoff, but we generally agree that this is the right call. If you want to see requires, you can just press F12 on the type you are interested in and it will navigate you to the definition, which will have the Alternatively, if you are viewing the rust documentation directly (ex via docs.rs), you can scroll down to the Component trait impl and see the list there in the docs. |

Objective
Component
require()IDE integration is fully broken, as of #16575.Solution
This reverts us back to the previous "put the docs on Component trait" impl. This does reduce the accessibility of the required components in rust docs, but the complete erasure of "required component IDE experience" is not worth the price of slightly increased prominence of requires in docs.
Additionally, Rust Analyzer has recently started including derive attributes in suggestions, so we aren't losing that benefit of the proc_macro attribute impl.