Problem: linked_editing_range was still doing most of the capability boilerplate itself. Solution: refactor it to make use of the common Capability framework for handling enabling, disabling, etc.
vim.lsp.protocol.Methods