{
  "all": {
    "formatter": {
      "lang": "all languages",
      "possible": []
    },
    "linter": {
      "lang": "all languages",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "bash": {
    "formatter": {
      "lang": "bash",
      "possible": ["beautysh", "shfmt"]
    },
    "linter": {
      "lang": "bash",
      "possible": [
        "bashate",
        "shellcheck",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "blade": {
    "formatter": {
      "lang": "blade",
      "possible": ["blade_formatter"]
    },
    "linter": {
      "lang": "blade",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "c": {
    "formatter": {
      "lang": "c",
      "possible": ["astyle", "clang_format", "clang_tidy", "uncrustify"]
    },
    "linter": {
      "lang": "c",
      "possible": [
        "clang_format",
        "clang_tidy",
        "cppcheck",
        "cpplint",
        "flawfinder",
        "gcc",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "c#": {
    "formatter": {
      "lang": "c#",
      "possible": ["dotnet_format", "uncrustify"]
    },
    "linter": {
      "lang": "c#",
      "possible": [
        "mcs",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "c++": {
    "formatter": {
      "lang": "c++",
      "possible": ["astyle", "clang_format", "clang_tidy", "uncrustify"]
    },
    "linter": {
      "lang": "c++",
      "possible": [
        "clang_format",
        "clang_tidy",
        "clazy",
        "cppcheck",
        "cpplint",
        "gcc",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "clojure": {
    "formatter": {
      "lang": "clojure",
      "possible": ["cljstyle", "joker"]
    },
    "linter": {
      "lang": "clojure",
      "possible": [
        "clj_kondo",
        "joker",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "cmake": {
    "formatter": {
      "lang": "cmake",
      "possible": ["gersemi"]
    },
    "linter": {
      "lang": "cmake",
      "possible": [
        "cmake_lint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "crystal": {
    "formatter": {
      "lang": "crystal",
      "possible": []
    },
    "linter": {
      "lang": "crystal",
      "possible": [
        "ameba",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "csh": {
    "formatter": {
      "lang": "csh",
      "possible": ["beautysh"]
    },
    "linter": {
      "lang": "csh",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "css": {
    "formatter": {
      "lang": "css",
      "possible": ["fecs", "prettier", "prettier_d", "stylelint"]
    },
    "linter": {
      "lang": "css",
      "possible": [
        "stylelint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "d": {
    "formatter": {
      "lang": "d",
      "possible": ["dfmt", "uncrustify"]
    },
    "linter": {
      "lang": "d",
      "possible": [
        "dmd",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "dart": {
    "formatter": {
      "lang": "dart",
      "possible": ["dartfmt"]
    },
    "linter": {
      "lang": "dart",
      "possible": [
        "dartanalyzer",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "docker": {
    "formatter": {
      "lang": "docker",
      "possible": []
    },
    "linter": {
      "lang": "docker",
      "possible": [
        "hadolint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "elixir": {
    "formatter": {
      "lang": "elixir",
      "possible": ["mix"]
    },
    "linter": {
      "lang": "elixir",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "fennel": {
    "formatter": {
      "lang": "fennel",
      "possible": ["fnlfmt"]
    },
    "linter": {
      "lang": "fennel",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "fish": {
    "formatter": {
      "lang": "fish",
      "possible": ["fish_indent"]
    },
    "linter": {
      "lang": "fish",
      "possible": [
        "fish",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "gitcommit": {
    "formatter": {
      "lang": "gitcommit",
      "possible": []
    },
    "linter": {
      "lang": "gitcommit",
      "possible": [
        "gitlint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "gleam": {
    "formatter": {
      "lang": "gleam",
      "possible": ["gleam_format"]
    },
    "linter": {
      "lang": "gleam",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "go": {
    "formatter": {
      "lang": "go",
      "possible": ["djlint", "gofmt", "gofumpt", "goimports", "golines"]
    },
    "linter": {
      "lang": "go",
      "possible": [
        "djlint",
        "go_revive",
        "golangci_lint",
        "golint",
        "staticcheck",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "haskell": {
    "formatter": {
      "lang": "haskell",
      "possible": ["fourmolu"]
    },
    "linter": {
      "lang": "haskell",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "html": {
    "formatter": {
      "lang": "html",
      "possible": ["djlint", "fecs", "prettier", "prettier_d"]
    },
    "linter": {
      "lang": "html",
      "possible": [
        "markuplint",
        "djlint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "java": {
    "formatter": {
      "lang": "java",
      "possible": ["google_java_format", "uncrustify"]
    },
    "linter": {
      "lang": "java",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "javascript": {
    "formatter": {
      "lang": "javascript",
      "possible": [
        "biome",
        "deno_fmt",
        "dprint",
        "eslint",
        "eslint_d",
        "fecs",
        "js_standard",
        "prettier",
        "prettier_d",
        "prettier_eslint",
        "prettier_standard",
        "rome",
        "xo"
      ]
    },
    "linter": {
      "lang": "javascript",
      "possible": [
        "eslint",
        "eslint_d",
        "fecs",
        "js_standard",
        "xo",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "javascriptreact": {
    "formatter": {
      "lang": "javascriptreact",
      "possible": ["deno_fmt"]
    },
    "linter": {
      "lang": "javascriptreact",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "json": {
    "formatter": {
      "lang": "json",
      "possible": [
        "biome",
        "dprint",
        "fixjson",
        "jq",
        "prettier",
        "prettier_d",
        "rome"
      ]
    },
    "linter": {
      "lang": "json",
      "possible": [
        "jsonlint",
        "jq",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "jsonc": {
    "formatter": {
      "lang": "jsonc",
      "possible": ["biome"]
    },
    "linter": {
      "lang": "jsonc",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "kdl": {
    "formatter": {
      "lang": "kdl",
      "possible": ["kdlfmt"]
    },
    "linter": {
      "lang": "kdl",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "ksh": {
    "formatter": {
      "lang": "ksh",
      "possible": ["beautysh"]
    },
    "linter": {
      "lang": "ksh",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "less": {
    "formatter": {
      "lang": "less",
      "possible": ["prettier", "prettier_d", "stylelint"]
    },
    "linter": {
      "lang": "less",
      "possible": [
        "stylelint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "lua": {
    "formatter": {
      "lang": "lua",
      "possible": ["lua_format", "stylua"]
    },
    "linter": {
      "lang": "lua",
      "possible": [
        "luacheck",
        "selene",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "make": {
    "formatter": {
      "lang": "make",
      "possible": []
    },
    "linter": {
      "lang": "make",
      "possible": [
        "checkmake",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "markdown": {
    "formatter": {
      "lang": "markdown",
      "possible": ["cbfmt", "dprint", "mdformat"]
    },
    "linter": {
      "lang": "markdown",
      "possible": [
        "markdownlint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "misc": {
    "formatter": {
      "lang": "misc",
      "possible": []
    },
    "linter": {
      "lang": "misc",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "nix": {
    "formatter": {
      "lang": "nix",
      "possible": ["alejandra", "nixfmt"]
    },
    "linter": {
      "lang": "nix",
      "possible": [
        "statix",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "objective-c": {
    "formatter": {
      "lang": "objective-c",
      "possible": ["uncrustify"]
    },
    "linter": {
      "lang": "objective-c",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "objective-c++": {
    "formatter": {
      "lang": "objective-c++",
      "possible": ["uncrustify"]
    },
    "linter": {
      "lang": "objective-c++",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "pawn": {
    "formatter": {
      "lang": "pawn",
      "possible": ["uncrustify"]
    },
    "linter": {
      "lang": "pawn",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "php": {
    "formatter": {
      "lang": "php",
      "possible": ["djlint", "php_cs_fixer", "phpcbf", "pint"]
    },
    "linter": {
      "lang": "php",
      "possible": [
        "djlint",
        "phan",
        "php",
        "phpcs",
        "phpstan",
        "psalm",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "proto": {
    "formatter": {
      "lang": "proto",
      "possible": ["buf", "protolint"]
    },
    "linter": {
      "lang": "proto",
      "possible": [
        "buf",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "python": {
    "formatter": {
      "lang": "python",
      "possible": [
        "autopep8",
        "black",
        "djlint",
        "isort",
        "ruff",
        "ruff_sort",
        "yapf"
      ]
    },
    "linter": {
      "lang": "python",
      "possible": [
        "djlint",
        "flake8",
        "mypy",
        "pylint",
        "ruff",
        "vulture",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "roslyn": {
    "formatter": {
      "lang": "roslyn",
      "possible": ["dprint"]
    },
    "linter": {
      "lang": "roslyn",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "ruby": {
    "formatter": {
      "lang": "ruby",
      "possible": []
    },
    "linter": {
      "lang": "ruby",
      "possible": [
        "debride",
        "reek",
        "rubocop",
        "sorbet",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "rust": {
    "formatter": {
      "lang": "rust",
      "possible": ["dprint", "rustfmt"]
    },
    "linter": {
      "lang": "rust",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "sass": {
    "formatter": {
      "lang": "sass",
      "possible": ["prettier", "prettier_d", "stylelint"]
    },
    "linter": {
      "lang": "sass",
      "possible": [
        "stylelint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "scala": {
    "formatter": {
      "lang": "scala",
      "possible": ["scalafmt"]
    },
    "linter": {
      "lang": "scala",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "scss": {
    "formatter": {
      "lang": "scss",
      "possible": ["prettier", "prettier_d", "stylelint"]
    },
    "linter": {
      "lang": "scss",
      "possible": [
        "stylelint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "sh": {
    "formatter": {
      "lang": "sh",
      "possible": ["beautysh", "shellharden", "shfmt"]
    },
    "linter": {
      "lang": "sh",
      "possible": [
        "shellcheck",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "slim": {
    "formatter": {
      "lang": "slim",
      "possible": []
    },
    "linter": {
      "lang": "slim",
      "possible": [
        "slim_lint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "sml": {
    "formatter": {
      "lang": "sml",
      "possible": ["smlfmt"]
    },
    "linter": {
      "lang": "sml",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "solidity": {
    "formatter": {
      "lang": "solidity",
      "possible": ["forge_fmt"]
    },
    "linter": {
      "lang": "solidity",
      "possible": [
        "slither",
        "solhint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "sql": {
    "formatter": {
      "lang": "sql",
      "possible": ["sql-formatter", "sqlfluff", "sqruff"]
    },
    "linter": {
      "lang": "sql",
      "possible": [
        "sqlfluff",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "swift": {
    "formatter": {
      "lang": "swift",
      "possible": ["swiftformat"]
    },
    "linter": {
      "lang": "swift",
      "possible": [
        "swiftlint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "terraform": {
    "formatter": {
      "lang": "terraform",
      "possible": ["terraform_fmt"]
    },
    "linter": {
      "lang": "terraform",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "tex": {
    "formatter": {
      "lang": "tex",
      "possible": ["latexindent"]
    },
    "linter": {
      "lang": "tex",
      "possible": [
        "chktex",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "toml": {
    "formatter": {
      "lang": "toml",
      "possible": ["dprint", "taplo"]
    },
    "linter": {
      "lang": "toml",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "typescript": {
    "formatter": {
      "lang": "typescript",
      "possible": [
        "biome",
        "deno_fmt",
        "dprint",
        "eslint",
        "eslint_d",
        "fecs",
        "prettier",
        "prettier_d",
        "prettier_eslint",
        "prettier_standard",
        "rome",
        "xo"
      ]
    },
    "linter": {
      "lang": "typescript",
      "possible": [
        "eslint",
        "eslint_d",
        "xo",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "typescriptreact": {
    "formatter": {
      "lang": "typescriptreact",
      "possible": ["deno_fmt"]
    },
    "linter": {
      "lang": "typescriptreact",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "typst": {
    "formatter": {
      "lang": "typst",
      "possible": ["prettypst", "typstfmt", "typstyle"]
    },
    "linter": {
      "lang": "typst",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "vala": {
    "formatter": {
      "lang": "vala",
      "possible": ["uncrustify"]
    },
    "linter": {
      "lang": "vala",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "vim": {
    "formatter": {
      "lang": "vim",
      "possible": []
    },
    "linter": {
      "lang": "vim",
      "possible": [
        "vint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "yaml": {
    "formatter": {
      "lang": "yaml",
      "possible": ["prettier", "yq"]
    },
    "linter": {
      "lang": "yaml",
      "possible": [
        "actionlint",
        "ansible_lint",
        "yamllint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "zig": {
    "formatter": {
      "lang": "zig",
      "possible": []
    },
    "linter": {
      "lang": "zig",
      "possible": [
        "zlint",
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  },
  "zsh": {
    "formatter": {
      "lang": "zsh",
      "possible": ["beautysh"]
    },
    "linter": {
      "lang": "zsh",
      "possible": [
        "alex",
        "codespell",
        "cspell",
        "languagetool",
        "proselint",
        "redpen",
        "textlint",
        "vale",
        "write_good"
      ]
    }
  }
}
