sublimelsp / LSP

Client implementation of the Language Server Protocol for Sublime Text
https://lsp.sublimetext.io/
MIT License
1.61k stars 180 forks source link

Discuss removal of some APIs #2466

Open predragnikolic opened 2 weeks ago

predragnikolic commented 2 weeks ago

Some API are not necessary anymore.

While this removal might not happen soon, I still wanted to give a heads up.

Client configuration

The following api will stay:

The following will be deprecated and removed:

Each package that still uses the deprecated api will get an update to migrate to selector and priority_selector.

jwortmann commented 2 weeks ago

There is also uri_to_filename function from the API marked as deprecated for a long time. Maybe it can be removed? (probably better to check LSP-* packages first if it is used somewhere)

  • Remove default_clients in a non breaking way

How is this possible in a "non-breaking way"? I'm all for removing the default_clients (even if it would be breaking), but if someone used those configs, it would stop working for them, no? Or what am I missing?

predragnikolic commented 2 weeks ago

Remove default_clients in a non breaking way

I can add code to migrate the "default_clients" to users LSP.sublime-settings "clients" section. (in reality, it would require more code, I would need to merge the "clients" configuration to "default_clients" and then move it to "clients", but you get the point)

I would like to avoid people having to deal with breaking changes, unless they really have to... But that is just nice to have :) If we just delete the "default_clients" I would be fine with that, and people will be notified about that change in the release notes. Which is also OK.

predragnikolic commented 2 weeks ago

probably better to check LSP-* packages first if it is used somewhere

The easiest way to see if we are breaking a LSP-pacakge is by cloning https://github.com/sublimelsp/lsp_maintainers

Should help when doing breaking changes to see what plugins are affected.

Commands:

Preferences: LSP Maintainers Settings - configure what LSP- will be cloned and included in the project. LSP Maintainers: Clone Projects - will clone the specified LSP- plugins in the sublime package directory. LSP Maintainers: Open Projects - will open the those LSP-* plugins in the current window.