Correct me if I'm wrong, but right now if you set a custom "clients" in preference, it overrides the default config rather than merging them together. Would it make sense if that configs are merged?
It would make sense to merge the configs. Perhaps we should discuss how LSP should ship its default settings:
Also, should we do a merge of complete setting blocks (as will be done for project-specific settings) or even merge individual settings when a client is present in user preferences?
I would say popular configuration, disabled by default as it is very likely that a user does not have the servers all installed. As far as I know, the key client of the user settings will overwrite the same key LSP.sublime-settings. So we may need two keys, default_clients and user_clients.
I'd definitely be interested in having a language-specific package (in my case, PHP) which would set up the clients for the language as well as all the other pieces (such as installing the actual servers). This would need support for adding items to the clients object; this might already be possible, I haven't checked that yet.
Adding a guide configuration step would help language-specific configuration (#4) as well.
I suggest LSP doesn't get into the business of installing the servers (imagine the support requests coming in here!), but provides the following onboarding flow:
default_clients as suggested by @randy3k, all disableddefault_clients, we prompt the user if they want to enable the configuration: "never", "always" or "only in this project".A language-specific package could further automate this, with some risk of getting out of date with LSP's configuration.
Most helpful comment
Adding a guide configuration step would help language-specific configuration (#4) as well.
I suggest LSP doesn't get into the business of installing the servers (imagine the support requests coming in here!), but provides the following onboarding flow:
default_clientsas suggested by @randy3k, all disableddefault_clients, we prompt the user if they want to enable the configuration: "never", "always" or "only in this project".A language-specific package could further automate this, with some risk of getting out of date with LSP's configuration.