LSP
LSP copied to clipboard
Add back id in context menu or remove submenu
LSP-* packages may want to extend the context menu with additional server-specific commands.
Example from VS Code:

The "LSP" submenu was introduced in 8491948ca70acd1f691975c2d1a5d622a699d580 and the "id" for the LSP menu entries was removed in this commit. Extending a submenu from other packages is only possible if the submenu label has an "id". It would work, but then it will be at the bottom of the context menu, because all entries with "id" are appended to the bottom, after the native entries from the Default package (see https://docs.sublimetext.io/guide/customization/menus.html#menu-merging).

(Specific entries from LSP-* helper packages could be hidden for not applicable files via the is_visible method of the command)
Alternative
We could also remove the "LSP" submenu again, and add back all menu items to the top-level context menu (without "id"). Then they will still be at the top, and LSP-* packages could just add their own items in a similar way. Due to ST's ordering by package name when merging resource files, they would immediately follow the LSP standard items then. To save space, we could also hide all disabled standard items via is_visible(), rather than just disable/grey out them via is_enabled().
Alternative 2
LSP-* packages could also add their own submenu under the "LSP" submenu. But this is super ugly and also I think there is no way to hide this, even when all submenu items are hidden via is_visible(). So in this case you would end up with a non-functional submenu without any items even for unrelated files:

Note that currently I don't have any concrete implementation, I'm just experimenting a bit. So this request isn't super urgent, but it would be useful to find a better solution for the future. Any opinions?