fidget.nvimはLSPとかのロード状況をアニメーションで教えてくれるプラグインです。
とってもCoolで便利なのですが、rust-analyzerと一緒に使ってたときに表示されるメッセージが長すぎて見切れちゃったので、対処法を書いておきます!
方針
どうもメッセージにライブラリ?かなんかのパスが含まれてるせいで長すぎになっちゃってるみたいです。設定でLSPから渡されたメッセージからパスの部分を削除して表示するようにします!!
Let's GO🦓
1. 次のヘルパー関数を定義します
-- 文字列がパスかどうか判定します
local function isPath(inputString)
return string.find(inputString, "[/\\]")
end
-- 文字列をスペースで分割します
local function splitString(inputString)
local splittedStrings = {}
for word in string.gmatch(inputString, "%S+") do
table.insert(splittedStrings, word)
end
return splittedStrings
end
-- 文字列からパスを取り除きます
local function removePathFromString(inputString)
local splittedStrings = splitString(inputString)
local processedStrings = {}
for _,word in ipairs(splittedStrings) do
if not isPath(word) then
table.insert(processedStrings, word)
end
end
local processedString = ""
for i,word in ipairs(processedStrings) do
if i == #processedStrings then
processedString = processedString..word
else
processedString = processedString..word.." "
end
end
return processedString
end
2. fidgetの設定に以下を追加
require("fidget").setup {
progress = {
display = {
--===================<ここから追加>===================
format_message = function(msg)
local message = ""
if not msg.message then
message = msg.done and "Completed" or "In progress..."
else
message = removePathFromString(msg.message)
end
if msg.percentage ~= nil then
message = string.format("%s (%.0f%%)", message, msg.percentage)
end
return message
end,
--===================<ここまで追加>===================
}
}
}
完成!!
確認
パスの部分がなくなってスッキリしました。やったね!!!🎊🎊🎊🎊🎊🎊
参考文献