internal : redesign rust-analyzer::config
This PR aims to cover the infrastructural requirements for the rust-analyzer.toml ( #13529 ) issue. This means, that
- We no longer have a single config base. The once single
ConfigDatahas been divided into 4 : A tree of.ratomlfiles, a set of configs coming from the client ( this is what was called before theCrateDataexcept that now values do not default to anything when they are not defined) , a set of configs that will reflect what the contents of aratomlfile defined in user's config directory ( e.g~/.config/rust-analyzer/.rust-analyzer.tomland finally a tree root that is populated by default values only. - Configs have also been divided into 3 different blocks :
global,local,client. The current status of a config may change until #13529 got merged.
Once again many thanks to @cormacrelf for doing all the serde work.
I do not think the remaining clippy errors make much sense in this case.
Haven't looked at the split between local global and client yet. Will do that later. Additionally, one thing for a follow up we should look at is whether we can discard the json ptr deserialization approach now that the config structure is fully typed.
:umbrella: The latest upstream changes (presumably #16704) made this pull request unmergeable. Please resolve the merge conflicts.
:umbrella: The latest upstream changes (presumably #16752) made this pull request unmergeable. Please resolve the merge conflicts.
:umbrella: The latest upstream changes (presumably #16473) made this pull request unmergeable. Please resolve the merge conflicts.
I am not satisfied with what I have now, but I also need to move forward with actually implementing ratoml tree to see what I need and what I don't.
:umbrella: The latest upstream changes (presumably #16889) made this pull request unmergeable. Please resolve the merge conflicts.
For integration tests it is necessary to discuss what will belong to global/local/client. After that, this part can be actually be merged.
:umbrella: The latest upstream changes (presumably #16906) made this pull request unmergeable. Please resolve the merge conflicts.
@bors r+
:pushpin: Commit 60d3a7320e3139d5b447f5d54d8ee4f7e0995569 has been approved by Veykril
It is now in the queue for this repository.
:hourglass: Testing commit 60d3a7320e3139d5b447f5d54d8ee4f7e0995569 with merge 1179c3ee83eb72508049c78d06c06057c21885a3...
:sunny: Test successful - checks-actions Approved by: Veykril Pushing 1179c3ee83eb72508049c78d06c06057c21885a3 to master...