workspace-diagnostics.nvim
workspace-diagnostics.nvim copied to clipboard
Populate diagnostics for all projects files, not just the opened ones.
workspace-diagnostics.nvim
Populates project-wide lsp diagnostcs, regardless of what files are opened.
This post goes into details of lsp diagnostics and how this plugin works.
Demo
Here you can see that even though a single file gets opened, the diagnostics are populated for other files as well.
https://github.com/artemave/workspace-diagnostics.nvim/assets/23721/ae32fdc8-a547-4194-ae00-df19c66d2b5f
📋 Installation
Package manager | Snippet |
---|---|
|
|
|
|
|
⚡️ Usage
Populate workspace diagnostcs when an lsp client is attached:
require('lspconfig').tsserver.setup({
on_attach = function(client, bufnr)
...
require("workspace-diagnostics").populate_workspace_diagnostics(client, bufnr)
...
end
})
Despite its placement, populate_workspace_diagnostics
will actually do the work only once per client.
⚙ Configuration
You can configure a different function that returns a list of project files (it defaults to the output of git ls-files
).
require("workspace-diagnostics").setup({
workspace_files = function()
return { 'index.js', 'lib/banana.js' }
end
})
⌨ Contributing
PRs and issues are always welcome. Make sure to provide as much context as possible when opening one.
To run make lint
locally, you'd need to install stylua:
cargo install stylua --features lua52