local efm_configs = require("user.plugins.efm_configs") efm_configs.setup({ filetypes = { python = { { kind = "formatters", name = "ruff" }, { kind = "linters", name = "ruff" }, }, lua = { { kind = "formatters", name = "stylua" }, { kind = "linters", name = "luacheck" }, }, markdown = { { kind = "linters", name = "textlint" }, { kind = "linters", name = "markdownlint" }, { kind = "formatters", name = "mdformat" }, }, make = { { kind = "linters", name = "checkmake" }, }, json = { { kind = "formatters", name = "jq" }, { kind = "linters", name = "jq" }, }, json5 = { { kind = "formatters", name = "jq" }, { kind = "linters", name = "jq" }, }, jsonc = { { kind = "formatters", name = "jq" }, { kind = "linters", name = "jq" }, }, yaml = { { kind = "linters", name = "yamllint" }, { kind = "linters", name = "actionlint" }, }, php = { { kind = "linters", name = "phpcs" }, { kind = "formatters", name = "phpcbf" }, }, blade = { { kind = "formatters", name = "blade_formatter" }, }, dockerfile = { { kind = "linters", name = "hadolint" }, }, javascript = { { kind = "linters", name = "eslint_d" }, { kind = "formatters", name = "prettier_d" }, }, javascriptreact = { { kind = "linters", name = "eslint_d" }, { kind = "formatters", name = "prettier_d" }, }, typescript = { { kind = "linters", name = "eslint_d" }, { kind = "formatters", name = vim.env.NVIM_EFM_LS_FORMATTERS_TYPESCRIPT or "prettier_d" }, }, typescriptreact = { { kind = "linters", name = "eslint_d" }, { kind = "formatters", name = vim.env.NVIM_EFM_LS_FORMATTERS_TYPESCRIPT or "prettier_d" }, }, sh = { { kind = "linters", name = "shellcheck" }, { kind = "formatters", name = "beautysh" }, }, bash = { { kind = "linters", name = "shellcheck" }, { kind = "formatters", name = "beautysh" }, }, zsh = { { kind = "formatters", name = "beautysh" }, }, nix = { { kind = "linters", name = "statix" }, }, sql = { { kind = "formatters", name = "sql-formatter" }, }, }, }) ---@type vim.lsp.Config return { filetypes = efm_configs.filetypes, init_options = { documentFormatting = true, rangeFormatting = true, hover = true, documentSymbol = true, codeAction = true, completion = false, }, settings = { rootMarkers = { ".git/" }, languages = efm_configs.languages, }, }