[clang-tools-extra] issue-63565: community requested small QoL fix for more configurabili… (PR #108005)

via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 18 07:06:12 PDT 2024


MK-Alias wrote:

Here a quick summery of the most important things.

The reason I've implemented a `UnsetDefault` is because the program flow doesn't work as [you specify](https://github.com/llvm/llvm-project/pull/108005#discussion_r1764069398). I needed a **untouched** state. Granted that `std::optional` would have been a better choice for this codebase. Thats why I had the [extra check](https://github.com/llvm/llvm-project/pull/108005#discussion_r1764080701) in the `FlagConfigProvider`.

`FlagConfigProvider` is pushed in the vector after `.clangd` config in [CLangdMain.cpp](https://github.com/llvm/llvm-project/blob/a4586bd2d4fa7d6c0100893496a9383fd581e2e9/clang-tools-extra/clangd/tool/ClangdMain.cpp#L926)
Then [ConfigProvider.cpp](https://github.com/llvm/llvm-project/blob/5ac97d397c2088c3ac0a113506e57ab9b1e69ac8/clang-tools-extra/clangd/ConfigProvider.cpp#L154) just iterates over it, which means that `FlagConfigProvider` is evaluated **after** `.clangd` and will override it!

I now have a version which I belief is fully compliant to all your critique., however this means that the `--function-arg-placeholders` will override the `.clangd` `ArgumentLists` setting.

This would be confirm the overlaying logic of the program. So I would recommend just accept this.! If someone ever wants to change the parsing order, our new `ArgumentLists` will just confirm to that.!

I will push the new version in a couple of minutes for you to evaluate.

https://github.com/llvm/llvm-project/pull/108005


More information about the cfe-commits mailing list