Awesome
📦 tiny-inline-diagnostic.nvim
A Neovim plugin that display prettier diagnostic messages. Display one line diagnostic messages where the cursor is, with icons and colors.
🖼️ Images
Overflow handling enabled
Break line enabled
🛠️ Setup
- You need to set
vim.diagnostic.config({ virtual_text = false })
, to not have all diagnostics in the buffer displayed.
📥 Installation
With Lazy.nvim:
{
"rachartier/tiny-inline-diagnostic.nvim",
event = "VeryLazy",
config = function()
require('tiny-inline-diagnostic').setup()
end
}
⚙️ Options
-- Default configuration
require('tiny-inline-diagnostic').setup({
signs = {
left = "",
right = "",
diag = "●",
arrow = " ",
up_arrow = " ",
vertical = " │",
vertical_end = " └"
},
hi = {
error = "DiagnosticError",
warn = "DiagnosticWarn",
info = "DiagnosticInfo",
hint = "DiagnosticHint",
arrow = "NonText",
background = "CursorLine", -- Can be a highlight or a hexadecimal color (#RRGGBB)
mixing_color = "None", -- Can be None or a hexadecimal color (#RRGGBB). Used to blend the background color with the diagnostic background color with another color.
},
blend = {
factor = 0.27,
},
options = {
-- Throttle the update of the diagnostic when moving cursor, in milliseconds.
-- You can increase it if you have performance issues.
-- Or set it to 0 to have better visuals.
throttle = 20,
-- The minimum length of the message, otherwise it will be on a new line.
softwrap = 15,
-- If multiple diagnostics are under the cursor, display all of them.
multiple_diag_under_cursor = false,
overflow = {
-- Manage the overflow of the message.
-- - wrap: when the message is too long, it is then displayed on multiple lines.
-- - none: the message will not be truncated, and will be displayed on a single line.
mode = "wrap",
},
--- Enable it if you want to always have message with `after` characters length.
break_line = {
enabled = false,
after = 30,
},
virt_texts = {
priority = 2048,
}
}
})
💡 Highlights
- TinyInlineDiagnosticVirtualTextError
- TinyInlineDiagnosticVirtualTextWarn
- TinyInlineDiagnosticVirtualTextInfo
- TinyInlineDiagnosticVirtualTextHint
- TinyInlineDiagnosticVirtualTextArrow
Inv
is used for left and right signs.
- TinyInlineInvDiagnosticVirtualTextError
- TinyInlineInvDiagnosticVirtualTextWarn
- TinyInlineInvDiagnosticVirtualTextInfo
- TinyInlineInvDiagnosticVirtualTextHint
📚 API
require("tiny-inline-diagnostic").change(blend, highlights)
: change the colors of the diagnostic. You need to refer tosetup
to see the structure of theblend
andhighlights
options.require("tiny-inline-diagnostic").get_diagnostic_under_cursor(bufnr)
: get the diagnostic under the cursor, useful if you want to display the diagnostic in a statusline.require("tiny-inline-diagnostic").enable()
: enable the diagnostic.require("tiny-inline-diagnostic").disable()
: disable the diagnostic.require("tiny-inline-diagnostic").toggle()
: toggle the diagnostic, on/off.
❓ FAQ:
- Q: My colors are bad
- You can change the colors with the
hi
option. - If you have no background color, you should try to set
blend.mixing_color
to a color that will blend with the background color.
- You can change the colors with the
- Q: All diagnostics are still displayed
- You need to set
vim.diagnostic.config({ virtual_text = false })
to remove all the others diagnostics.
- You need to set
- Q: Diagnostics are not readable on a light background
- You can either set
vim.g.background = "light"
to use white diagnostics background. Will not work ifhi.mixing_color
is set
- You can either set
- Q:
GitBlame
(or other) is displayed first- You need to modify the
virt_texts.priority
option to a higher value.
- You need to modify the