local M = {} function M.setup() local nls = require "null-ls" nls.setup({ debug = true, sources = { nls.builtins.formatting.xmllint, nls.builtins.formatting.jq, 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, nls.builtins.diagnostics.yamllint, } }) end return M