A Neovim plugin that display prettier diagnostic messages. Display one line diagnostic messages where the cursor is, with icons and colors.
- You need to set
vim.diagnostic.config({ virtual_text = false }), to not have all diagnostics in the buffer displayed.
Note
Only works with Neovim >= 0.10
With Lazy.nvim:
{
"rachartier/tiny-inline-diagnostic.nvim",
event = "VeryLazy", -- Or `LspAttach`
config = function()
require('tiny-inline-diagnostic').setup()
end
}-- 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 = {
-- Show the source of the diagnostic.
show_source = false,
-- 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,
-- Enable diagnostic message on all lines.
multilines = false,
-- Show all diagnostics on the cursor line.
show_all_diags_on_cursorline = 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.
-- - oneline: message will be displayed entirely on one line.
mode = "wrap",
},
-- Format the diagnostic message.
-- Example:
-- format = function(diagnostic)
-- return diagnostic.message .. " [" .. diagnostic.source .. "]"
-- end,
format = nil,
--- Enable it if you want to always have message with `after` characters length.
break_line = {
enabled = false,
after = 30,
},
virt_texts = {
priority = 2048,
},
-- Filter by severity.
severity = {
vim.diagnostic.severity.ERROR,
vim.diagnostic.severity.WARN,
vim.diagnostic.severity.INFO,
vim.diagnostic.severity.HINT,
},
-- Overwrite events to attach to a buffer. You should not change it, but if the plugin
-- does not works in your configuration, you may try to tweak it.
overwrite_events = nil,
},
})- TinyInlineDiagnosticVirtualTextError
- TinyInlineDiagnosticVirtualTextWarn
- TinyInlineDiagnosticVirtualTextInfo
- TinyInlineDiagnosticVirtualTextHint
- TinyInlineDiagnosticVirtualTextArrow
Inv is used for left and right signs.
- TinyInlineInvDiagnosticVirtualTextError
- TinyInlineInvDiagnosticVirtualTextWarn
- TinyInlineInvDiagnosticVirtualTextInfo
- TinyInlineInvDiagnosticVirtualTextHint
require("tiny-inline-diagnostic").change(blend, highlights): change the colors of the diagnostic. You need to refer tosetupto see the structure of theblendandhighlightsoptions.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.require("tiny-inline-diagnostic").change_severities(severities): change the severity of the diagnostic.severitiesis an array of severity, likevim.diagnostic.severity.ERROR.
- Q: My colors are bad
- You can change the colors with the
hioption. - If you have no background color, you should try to set
blend.mixing_colorto 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_coloris set
- You can either set
- Q:
GitBlame(or other) is displayed first- You need to modify the
virt_texts.priorityoption to a higher value.
- You need to modify the


