local M = { 'jose-elias-alvarez/null-ls.nvim', dependencies = { 'nvim-lua/plenary.nvim' } } function M.config() local nls = require 'null-ls' nls.setup({ debug = false, temp_dir = vim.env.XDG_RUNTIME_DIR or '/tmp', sources = { nls.builtins.formatting.xmllint, nls.builtins.formatting.jq, nls.builtins.formatting.clang_format, nls.builtins.diagnostics.sqlfluff, nls.builtins.diagnostics.phpstan.with({ cwd = function(params) -- falls back to root if return value is nil return params.root:match('jopixel') and not params.root:match('repo') and 'www'; end }), nls.builtins.formatting.phpcsfixer.with({ extra_args = { '--rules', [[ { "@Symfony":true, "nullable_type_declaration_for_default_null_value":true, "array_syntax":{"syntax":"short"}, "binary_operator_spaces":{ "default":"single_space", "operators": { "=>":"align_single_space_minimal", "=":"align_single_space_minimal", "??=":"align_single_space_minimal", "^=":"align_single_space_minimal", "|=":"align_single_space_minimal", "+=":"align_single_space_minimal", "%=":"align_single_space_minimal", "&=":"align_single_space_minimal", "**=":"align_single_space_minimal", "*=":"align_single_space_minimal", "-=":"align_single_space_minimal", ".=":"align_single_space_minimal", "/=":"align_single_space_minimal", "<<=":"align_single_space_minimal", "<=":"align_single_space_minimal", ">=":"align_single_space_minimal", ">>=":"align_single_space_minimal" } }, "fully_qualified_strict_types":false } ]] } }), nls.builtins.diagnostics.shellcheck, nls.builtins.formatting.eslint, -- nls.builtins.diagnostics.eslint, nls.builtins.code_actions.eslint, } }) end return M