Neovim 0.11 に上げたところ、LSP 周りの関数が deprecated になっていた。
init.lua を開いたら Derecated の警告が出ていて驚いた。

deprecated-0.11
:help deprecated で非推奨になったものを見ることができる。
今回、対応したのは3つ。
- vim.lsp.with()
- vim.diagnostic.goto_next()
- vim.diagnostic.goto_prev()
vim.lsp.with() の非推奨化対応
以下のようなホバー時に丸角の枠を付けるために使用していた。
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
    vim.lsp.handlers.hover, { border = 'rounded' }
)
vim.api.nvim_create_autocmd("LspAttach", {
    callback = function()
        vim.keymap.set('n', 'K', function()
            vim.lsp.buf.hover()
        end, { buffer = true })
    end
})
ヘルプなどを見ていくと、LSP系でフローティング・ウィンドウ(?)を出すような関数は、パラメーターを直接渡せることが分かった。
(使用可能パラメーターは :help vim.lsp.util.open_floating_preview.Opts 辺りを参照)
vim.lsp.with() は不要になったのだ。
vim.api.nvim_create_autocmd("LspAttach", {
    callback = function()
        vim.keymap.set('n', 'K', function()
            vim.lsp.buf.hover({ border = 'rounded' })
        end, { buffer = true })
    end
})
vim.diagnostic.goto_next() と goto_prev() の非推奨化対応
こちらは、 vim.diagnostic.jump() を使うことを推奨されている。
count に正の値を入れると次へ、負の値だと前へジャンプする関数に統合されたわけだ。
vim.keymap.set('n', 'g]', function() vim.diagnostic.jump({ count = 1 }) end, { buffer = true })
vim.keymap.set('n', 'g[', function() vim.diagnostic.jump({ count = -1 }) end, { buffer = true })
こちらも vim.lsp.with() を使って枠を付けたりしていたが、 vim.diagnostic.config() で設定可能になることが分かった。
以下の float と jump の項目を追加して対応。
vim.diagnostic.config({
    -- ...
    float = { border = 'double', severity_sort = true },
    jump = { float = true }
})