Skip to content
This repository has been archived by the owner on Aug 12, 2023. It is now read-only.

feat(builtins/diagnostics/credo): toggle per file/full workspace diagnostics #1465

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

madlep
Copy link

@madlep madlep commented Mar 25, 2023

Add full_workspace boolean config param to credo.

When false (default), credo will run for current file in buffer - this preserves existing behaviour.
When true, credo will run globally for all files in the project workspace

Attached is a demo showing with config param disabled (default), then enabled.

  • The first time nvim is opened, only the credo diagnostics for the selected buffer are generated. When a different buffer is opened, diagnostics for that buffer are additionally generated.
  • The config is modified to add full_workspace = true for credo. nvim is opened again. When credo runs, project wide diagnostics are generated and populated (instead of just the current buffer).
Screen.Recording.2023-03-25.at.11.11.12.pm.mov

…nostics

Add `full_workspace` param to credo.

When false (default), credo will run for current file in buffer. When
true, will run credo globally for all files in the project workspace
if params:get_config().full_workspace then
-- this is hacky, but there isn't any way to set `multiple_files`
-- dynamically based on user config properly
params:get_source().generator.multiple_files = true
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried a few different ways to dynamically set multiple_files based on user config, but without much luck.

Happy to modify this to a better approach if there's something I'm missing. Mutating the generator during on_output doesn't seem great, but couldn't find a better way that didn't involve messing with a bunch of core logic in null-ls.

@jose-elias-alvarez
Copy link
Owner

This approach seems alright, but wouldn't a user be able to achieve the same results by overriding args and multiple_files? I don't think it's currently possible to do so, but it would be an easy change.

Alternatively: we could just add a separate source (e.g. credo_project) that runs on multiple files.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants