Skip to content

A Neovim plugin that display prettier diagnostic messages. Display one line diagnostic messages where the cursor is, with icons and colors.

License

Notifications You must be signed in to change notification settings

rachartier/tiny-inline-diagnostic.nvim

Repository files navigation

📦 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

tinyinlinediagnostic_2

Overflow handling enabled

tinyinlinediagnostic_wrap

Break line enabled

image

🛠️ Setup

  • You need to setvim.diagnostic.config({ virtual_text = false }),to not have all diagnostics in the buffer displayed.

📥 Installation

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
}

⚙️ 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)
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,
},
})

💡 Highlights

  • TinyInlineDiagnosticVirtualTextError
  • TinyInlineDiagnosticVirtualTextWarn
  • TinyInlineDiagnosticVirtualTextInfo
  • TinyInlineDiagnosticVirtualTextHint
  • TinyInlineDiagnosticVirtualTextArrow

Invis 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 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.

❓ FAQ:

  • Q:My colors are bad
    • You can change the colors with thehioption.
    • If you have no background color, you should try to setblend.mi xing _colorto a color that will blend with the background color.
  • Q:All diagnostics are still displayed
    • You need to setvim.diagnostic.config({ virtual_text = false })to remove all the others diagnostics.
  • Q:Diagnostics are not readable on a light background
    • You can either setvim.g.background = "light"to use white diagnostics background. Will not work ifhi.mi xing _coloris set
  • Q:GitBlame(or other) is displayed first
    • You need to modify thevirt_texts.priorityoption to a higher value.

About

A Neovim plugin that display prettier diagnostic messages. Display one line diagnostic messages where the cursor is, with icons and colors.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages