Having files of different names scheme (ex: rustfmt.toml not rust-fmt.toml like rust-toolchain.toml) and in different locations is a bit messy in my opinion.
Reading this thread it seems lots of people are interested in cleaning this up, in this case before the thread died they brought up using package.metadata, however, I wonder if just standardizing the pathing would be better than changing how the files themselves are consumed.
Thanks for reading and hopefully this isn't something already being worked on or closed out as out-of-scope.
It would be awesome if each of those tools had the option to receive their config through package.metadata in Cargo.toml. That way, you would be able to have just one config file if you wished to, but not break backwards compatibility if people prefer to stick with separate files.
That is, for example, for cargo, currently there's a stack of config files that first reads .cargo/config.toml, then if it's not present read ~/.cargo/config.toml. With this option, the stack would be: forst read [package.metadata.cargo] in Cargo.toml, then read .cargo/config.toml, then read ~/.cargo/config.toml. Ditto for all other Rust tools that litter the project directory with their own config files.
Some of those tools are cargo agnostic and there is generally a hard line that they can only specialize diagnostics for cargo and not do deeper integration.
Some of these configuration files are environmental configuration (read based on current-dir), not package or workspace configuration, and reading from Cargo.toml would imply the latter, confusing things.
As I said, the goal of that issue is to find ways to specify things in Cargo.toml, so no Cargo Config would be involved. Whether we migrate things to being at the workspace level, package level, or crate level depends on what we are migrating. We have to handle each on a case-by-case basis.