This plugin implements a custom floating window that takes advantage of Neovim's Diagnostic API (Errors, Warnings, Hints). Here is an outlook on all the current features:
Complete integration with the Diagnostic API
It was a challenge to achieve this functionality, a lot of thinking went into the different ways I could make use of the native Diagnostic API. The result is a great nested diagnostic handling system.
Different Diagnostics, Different Colors
This was the polishing touch, a way to make this stand out compared to IDEs.
Move the Mouse, Change the Message
Neovim will update the floating diagnostic window, as soon as it detects a change in diagnostics under the current mouse position.
- Neovim will now know if the mouse is over an underlined part of text, including nested underlines.
- Neovim will know what kind of diagnostic is under the current mouse position, if there are multiple diagnostics on this position, and if all the different diagnostics have mixed severities. The style of the floating window will adapt accordingly.
- When the mouse moves, Neovim will be able to detect if the new position has a different diagnostic message, in cases where the same line can have different messages in different places.
- The plugin has been tested using Neovim version 0.9.4.
All the configurable options are in the "defaults" table of config.lua.
- Integration with the LSP API, (contents of vim.lsp.buf.hover()). All the info, be it diagnostics, function or class declarations, variable definitions, will be contained inside the floating window of this plugin. This will be the next step of my development, so there is already a lot of work ahead.
You can support me through PayPal. Besides that, I'll be happy to receive your feedback and/or thoughts about this plugin.