From c0c72c5606f054115086f6f66dd8ed9a88f10242 Mon Sep 17 00:00:00 2001 From: blob42 Date: Sat, 18 Mar 2023 03:08:17 +0100 Subject: [PATCH] telescope register null-ls sources --- lua/core/mappings.lua | 7 ++-- lua/custom/plugins/configs/null-ls.lua | 48 ++++++++++++++------------ lua/spike/nullls.lua | 21 +++++++++++ 3 files changed, 52 insertions(+), 24 deletions(-) diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 70b486b..88d90bc 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -1130,8 +1130,11 @@ M.null_ls = { end end, "null-ls toggle golang linter "}, ['nls'] = { function() - require('spike.nullls').select_sources() - end, 'desc' }, + require('spike.nullls').select_sources() + end, 'desc' }, + ['nlS'] = { function() + require('spike.nullls').register_sources() + end, 'desc' }, } } diff --git a/lua/custom/plugins/configs/null-ls.lua b/lua/custom/plugins/configs/null-ls.lua index 37c166d..ff43a91 100644 --- a/lua/custom/plugins/configs/null-ls.lua +++ b/lua/custom/plugins/configs/null-ls.lua @@ -6,32 +6,36 @@ end local vim, api = vim, vim.api local M = {} -M.config = { - debounce = 1000, - default_timeout = 5000, - sources = { - null_ls.builtins.code_actions.gitsigns, - null_ls.builtins.code_actions.refactoring, - null_ls.builtins.code_actions.shellcheck, - null_ls.builtins.diagnostics.checkmake, - null_ls.builtins.diagnostics.fish, - null_ls.builtins.formatting.fish_indent, - null_ls.builtins.diagnostics.hadolint, - null_ls.builtins.diagnostics.jshint, - null_ls.builtins.diagnostics.flake8, - null_ls.builtins.diagnostics.pydocstyle, - -- null_ls.builtins.diagnostics.pylint, +M.default_sources = { + null_ls.builtins.code_actions.gitsigns, + null_ls.builtins.code_actions.refactoring, + null_ls.builtins.code_actions.shellcheck, + null_ls.builtins.diagnostics.checkmake, + null_ls.builtins.diagnostics.fish, + null_ls.builtins.formatting.fish_indent, + null_ls.builtins.diagnostics.hadolint, +} +M.extra_sources = { + null_ls.builtins.diagnostics.jshint, + null_ls.builtins.diagnostics.flake8, + null_ls.builtins.diagnostics.pydocstyle, + -- null_ls.builtins.diagnostics.pylint, - null_ls.builtins.formatting.autoflake, - null_ls.builtins.formatting.autopep8, - null_ls.builtins.formatting.black, - null_ls.builtins.formatting.isort, - -- golang revive (manually enabled with shortcut from mappings) - -- null_ls.builtins.diagnostics.revive, - }, + null_ls.builtins.formatting.autoflake, + null_ls.builtins.formatting.autopep8, + null_ls.builtins.formatting.black, + null_ls.builtins.formatting.isort, + -- golang revive (manually enabled with shortcut from mappings) + -- null_ls.builtins.diagnostics.revive, +} + +M.config = { + debounce = 1000, + default_timeout = 5000, + sources = M.default_sources, on_attach = function(client, bufnr) require('plugins.configs.lspconfig').on_attach(client, bufnr) local util = require('navigator.util') diff --git a/lua/spike/nullls.lua b/lua/spike/nullls.lua index b938872..61d0cb0 100644 --- a/lua/spike/nullls.lua +++ b/lua/spike/nullls.lua @@ -8,10 +8,31 @@ _ = require('dressing') local M = {} +M.register_sources = function() + sources = require('custom.plugins.configs.null-ls').extra_sources + vim.ui.select(sources, { + prompt = "select source to register:", + format_item = function (item) + local enabled = null_ls.is_registered({ name = item.name}) + local entry = enabled and '' or '' + local filetypes = '' + for _, ft in ipairs(item.filetypes) do + filetypes = filetypes .. ft .. '|' + end + filetypes = filetypes:gsub('|$', '') + entry_text = string.format("%s %-20s%s", entry, item.name, filetypes) + -- return entry .. ' ' .. item.name .. '\t\t' .. filetypes + return entry_text + end, + }, function(item) + if item then null_ls.register(item) end + end) +end M.select_sources = function() local sources = null_ls.get_sources() + --TODO: add entry to disable / activate all aka disable null-ls vim.ui.select(sources, { prompt = "select source to toggle:",