return {
	'nvimtools/none-ls.nvim',
	config = function()
		local null_ls = require 'null-ls'

		-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
		local formatting = null_ls.builtins.formatting
		-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
		local diagnostics = null_ls.builtins.diagnostics

		null_ls.setup {
			debug = false,
			sources = {
				formatting.prettier.with { extra_args = { '--no-semi', '--single-quote', '--jsx-single-quote' } },
				formatting.black.with { extra_args = { '--fast' } },
				formatting.stylua.with { extra_args = { '--quote-style=AutoPreferSingle', '--call-parentheses=None' } },
				-- formatting.clang_format.with {
				-- 	filetypes = { 'c' },
				-- 	extra_args = {
				-- 		'--style',
				-- 		'{BasedOnStyle: LLVM, IndentWidth: 8, UseTab: Always, BreakBeforeBraces: Linux, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, AlwaysBreakAfterReturnType: AllDefinitions}',
				-- 		-- '{AccessModifierOffset : -2, AllowShortIfStatementsOnASingleLine : Never, AlignConsecutiveMacros : true, AllowShortLoopsOnASingleLine : false, AlwaysBreakTemplateDeclarations : true, Standard : c++20, NamespaceIndentation : All, IndentWidth : 4, TabWidth : 4, BreakBeforeBraces : Linux, AllowShortFunctionsOnASingleLine : Empty, AllowShortBlocksOnASingleLine : Never, FixNamespaceComments : true, PointerAlignment : Right, ColumnLimit : 120, ContinuationIndentWidth : 2, UseTab : Always }',
				-- 	},
				-- },
				-- formatting.clang_format.with {
				-- 	filetypes = { 'cpp' },
				-- 	extra_args = {
				-- 		'--style',
				-- 		'google',
				-- 	},
				-- },
				-- formatting.beautysh,
				-- formatting.latexindent,
				formatting.goimports,
				formatting.gofumpt,
				formatting.sql_formatter,
				diagnostics.golangci_lint.with {
					extra_args = {
						'-E',
						'revive',
						'-E',
						'errcheck',
						'-E',
						'gosec',
						'-E',
						'nilerr',
						'-E',
						'nlreturn',
					},
				},
				formatting.asmfmt.with {
					filetypes = { 'asm', 's' },
				},
				-- diagnostics.flake8
			},
		}
	end,
}
