Allow "when" type causes for configuration items

I have a language extension that can support e.g. different LSP implementations (clangd or ccls). Some of the configuration tunables that make sense for one implementation don’t make sense for another. What I’d like to do is be able to disable configuration items based on the value of other configuration items. For example, if choosing LLVM clangd then I want to enable path and clang-tidy options, but if using Apple Clang maybe just the clang-tidy (as the path will always be /usr/bin/clangd) , and if using CCLS then I want to enable setting the path, but disable clang-tidy because CCLS doesn’t support it.

The “when” syntax already used for command entries would be perfect for this.

1 Like