return { { "dense-analysis/ale", ft = { "*" }, -- load for all filetypes config = function() -- Enable ALE linting vim.g.ale_enabled = 1 vim.g.ale_lint_on_text_changed = "always" vim.g.ale_lint_on_insert_leave = 1 vim.g.ale_sign_error = "✗" vim.g.ale_sign_warning = "⚠" vim.g.ale_sign_info = "ℹ" -- Fixers vim.g.ale_fixers = { python = { "black", "isort" }, r = { "styler" }, lua = { "stylua" }, tex = { "latexindent" }, } -- Automatically fix files on save vim.g.ale_fix_on_save = 1 -- Optional: choose linters per language vim.g.ale_linters = { python = { "flake8", "mypy" }, r = { "lintr" }, lua = { "luacheck" }, tex = { "chktex" }, } end, }, }