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', vim.fn.json_encode({ ['@Symfony'] = true, nullable_type_declaration_for_default_null_value = true, array_syntax = { syntax = 'short' }, fully_qualified_strict_types = false, 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' }, }, }), }, }), nls.builtins.diagnostics.shellcheck, nls.builtins.formatting.eslint, -- nls.builtins.diagnostics.eslint, nls.builtins.code_actions.eslint, }, }) end return M