diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index fec4db6..faafe59 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -119,6 +119,7 @@ return { 'p00f/clangd_extensions.nvim', 'jose-elias-alvarez/null-ls.nvim', 'Fildo7525/pretty_hover', + 'creativenull/efmls-configs-nvim', }, build = ':MasonUpdate', version = nil, @@ -316,22 +317,34 @@ return { } } - local null_ls = require('null-ls') - null_ls.setup({ - sources = { - null_ls.builtins.code_actions.gitsigns, - -- null_ls.builtins.formatting.black, - null_ls.builtins.formatting.autopep8, - null_ls.builtins.formatting.prettier, - null_ls.builtins.formatting.xmlformat, - null_ls.builtins.diagnostics.flake8, - null_ls.builtins.formatting.isort, - null_ls.builtins.formatting.cmake_format, + local prettier = require('efmls-configs.formatters.prettier') + local stylua = require('efmls-configs.formatters.stylua') + local gersemi = require('efmls-configs.formatters.gersemi') + local black = require('efmls-configs.formatters.black') + local isort = require('efmls-configs.formatters.isort') + local languages = { + lua = { stylua }, + markdown = { prettier }, + cmake = { gersemi }, + python = { isort, black }, + } + + local efmls_config = { + -- filetypes = vim.tbl_keys(languages), + settings = { + rootMarkers = { '.git/' }, + languages = languages, }, - debug = true, + init_options = { + documentFormatting = true, + documentRangeFormatting = true, + }, + } + + require('lspconfig').efm.setup(vim.tbl_extend('force', efmls_config, { on_attach = on_attach, capabilities = capabilities, - }) + })) vim.diagnostic.config({ virtual_text = false,