新しくなったfidget.nvim
はじめに
今までLSPの読み込み中に右下でくるくるするやつくらいの認識でfidget.nvimを入れていました。
ある日Githubを見てみると、いつの間にか説明がExtensible UI for Neovim notifications and LSP progress messages.
となっておりLSP専用ではなくなっていました。[1]
右下に好きな通知や進捗情報を表示できるようなので試してみます。
自由に使用できるというだけで今まで通りrequire("fidget").setup{}
を書いておけばLSPの情報は表示されます。
Progress
ヘルプは:h fidget.progress.handle
に載っています。
使い方は、handle.create()
→ メッセージやパーセンテージの更新
→finish()
と簡単です。
以下の例では10秒間スピナーを眺めることができます。
local endTime = 10
function CountUp()
local timer = vim.uv.new_timer()
local now = 0
local progress = require('fidget.progress').handle.create({
title = '10 Count',
lsp_client = { name = 'Counter' },
message = tostring(now),
percentage = 0
})
-- 1秒ごとに実行されるタイマー
timer:start(0, 1000, function()
progress:report({ message = tostring(now), percentage = now / endTime * 100 })
if (endTime <= now) then
timer:close()
progress:finish()
end
now = now + 1
end)
end
ここでは表示をいじっていませんが、スピナーやハイライト等たくさんの設定項目があります。
Notification
ヘルプは:h fidget.notification
です。
fidget.notify({msg}, {level}, {opts})
msgは表示するメッセージです。
levelは:h vim.log.levels
に載っていてINFOやERRORなどがあります。
optsはの詳細は:h fidget.notification.Options
にあります。
nnoremap <Space>n <cmd>lua require("fidget").notify('fidget!', vim.log.levels.INFO, {})<CR>
こちらも表示はデフォルトです。:h fidget.notification.Config
から細かい設定ができます。
履歴を見るには:Fidget history
というコマンドが用意されているので実行します。
(ちなみに、出力結果の画面は:h more-prompt
と呼ぶようです。)
自分で履歴をどうこうしたい場合、get_history()
で履歴を取ることができます。
最後に、fidgetはvim.notify()
互換なので通知プラグインの入れ替えも簡単です。
vim.notify = require("fidget.notification").notify
おわりに
以上、簡単な紹介でした。
控え目な通知が好みならfidgetを試してみてはいかかでしょうか。
-
最近書き直されたようです。https://github.com/j-hui/fidget.nvim/issues/131 ↩︎
Discussion