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)
mi xing _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,
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 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.
- 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.mi xing _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.mi xing _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