Results 59 comments of Kart

Huh, it seems that `tracing_subscriber` doesn't conduct any checks if the stream it's writing to actually supports color, which seems like an oversight. It just directly uses the `ansi_term` crate...

This seems to be a FIXME. https://github.com/rust-lang/rust-analyzer/blob/634cfe3d72e785c843ca5d412b12be137b2e14fb/crates/ide-diagnostics/src/handlers/inactive_code.rs#L108-L124

List of cases where dimming doesn't work (i.e. basically everything that's not considered to be an "item" on its own) ![image](https://user-images.githubusercontent.com/51814158/183304436-87142e35-a9d4-4df9-a1cb-eff250890a11.png)

Narrowed down the logic for ignoring the assoc items to https://github.com/rust-lang/rust-analyzer/blob/1883d1f14146959cfa9cdf1ed43e5d1ad013e07e/crates/hir-def/src/data.rs#L475-L484

Searching for `is_cfg_enabled` is the way to go for finding places where things are filtered without emitting a diagnostic.

@flodiebold For the plumbing you mentioned, most sub-items are filtered in `hir-def/src/adt`, while inactive diagnostics are emitted in `hir-def/src/nameres/collector` (for inactive module items). Additionally, the diagnostics structs are only available...

Oh right. I'll get to that now.

Ping @hamza1311 This RFC is supposed to get accepted before I start a PR for the changes, right? If yes, then what is the procedure?

Blocked on implementing Web Workers first.