configuration/quality/data/emitter.data.json

configuration/quality/data/emitter.data.json is a file in GovLab Quality. 182 lines of code and 0 definitions.

{
    "meta": {
        "note": "Per config file / parent tool: how a resolved ToolResolution serializes to the tool's native config. 'central' idiom = a select list + a settings container keyed by the (already native-dotted) knob path. Plugin tool records route to their parent via pluginParent. See doc-arch/designs/quality/native-config-emitters.md."
    },
    "descriptors": [
        {
            "tool": "golangci-lint",
            "idiom": "central",
            "format": "yaml",
            "configTarget": ".golangci.yml",
            "preamble": {"version": "2"},
            "selectContainer": "linters.enable",
            "settingsContainer": "linters.settings",
            "ignoreContainer": "linters.disable"
        },
        {
            "tool": "ruff",
            "idiom": "central",
            "format": "toml",
            "configTarget": "ruff.toml",
            "selectContainer": "lint.select",
            "settingsContainer": null
        },
        {
            "tool": "clippy",
            "idiom": "central",
            "format": "toml",
            "configTarget": "clippy.toml",
            "selectContainer": null,
            "settingsContainer": null,
            "knobCase": "kebab"
        },
        {
            "tool": "rubocop",
            "idiom": "per-rule",
            "format": "yaml",
            "configTarget": ".rubocop.yml",
            "selectContainer": null,
            "settingsContainer": null,
            "enableKey": "Enabled"
        },
        {
            "tool": "perlcritic",
            "idiom": "per-rule",
            "format": "ini",
            "configTarget": ".perlcriticrc",
            "selectContainer": null,
            "settingsContainer": null,
            "enableKey": null
        },
        {
            "tool": "pylint",
            "idiom": "central",
            "format": "ini",
            "configTarget": ".pylintrc",
            "selectContainer": null,
            "settingsContainer": null,
            "knobSection": {"max-args": "DESIGN",
                "max-statements": "DESIGN",
                "indent-string": "FORMAT"}
        },
        {
            "tool": "yamllint",
            "idiom": "rules-container",
            "format": "yaml",
            "configTarget": ".yamllint",
            "selectContainer": null,
            "settingsContainer": null,
            "ruleContainer": "rules"
        },
        {
            "tool": "checkstyle",
            "idiom": "central",
            "format": "xml",
            "configTarget": "checkstyle.xml",
            "selectContainer": null,
            "settingsContainer": null,
            "xmlWrap": [
                {"tag": "module",
                    "attrs": {"name": "Checker"}},
                {"tag": "module",
                    "attrs": {"name": "TreeWalker"}}
            ],
            "xmlRuleTag": "module",
            "xmlNameAttr": "name",
            "xmlPropsWrap": null,
            "xmlDoctype": "<!DOCTYPE module PUBLIC \"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN\" \"https://checkstyle.org/dtds/configuration_1_3.dtd\">"
        },
        {
            "tool": "pmd",
            "idiom": "central",
            "format": "xml",
            "configTarget": "pmd-ruleset.xml",
            "selectContainer": null,
            "settingsContainer": null,
            "xmlWrap": [
                {"tag": "ruleset",
                    "attrs": {"name": "govlab",
                        "xmlns": "http://pmd.sourceforge.net/ruleset/2.0.0"}}
            ],
            "xmlRuleTag": "rule",
            "xmlNameAttr": "ref",
            "xmlPropsWrap": "properties",
            "xmlRefPrefix": "category/java/design.xml/",
            "xmlDescription": "GovLab SSOT-emitted ruleset"
        },
        {
            "tool": "phpmd",
            "idiom": "central",
            "format": "xml",
            "configTarget": "phpmd.xml",
            "selectContainer": null,
            "settingsContainer": null,
            "xmlWrap": [
                {"tag": "ruleset",
                    "attrs": {"name": "govlab",
                        "xmlns": "http://pmd.sf.net/ruleset/1.0.0"}}
            ],
            "xmlRuleTag": "rule",
            "xmlNameAttr": "ref",
            "xmlPropsWrap": "properties",
            "xmlRefPrefix": "rulesets/codesize.xml/",
            "xmlDescription": "GovLab SSOT-emitted ruleset"
        },
        {
            "tool": "prettier",
            "idiom": "central",
            "format": "js-record",
            "configTarget": ".prettierrc",
            "selectContainer": null,
            "settingsContainer": null
        },
        {
            "tool": "revive",
            "idiom": "rules-container",
            "format": "toml",
            "configTarget": "revive.toml",
            "selectContainer": null,
            "settingsContainer": null,
            "ruleContainer": "rule",
            "argumentsKey": "arguments"
        },
        {
            "tool": "swiftlint",
            "idiom": "per-rule",
            "format": "yaml",
            "configTarget": ".swiftlint.yml",
            "selectContainer": null,
            "settingsContainer": null,
            "enableKey": null,
            "compoundSplit": "|"
        },
        {
            "tool": "sqlfluff",
            "idiom": "central",
            "format": "ini",
            "configTarget": ".sqlfluff",
            "selectContainer": null,
            "settingsContainer": null,
            "knobSection": {"tab_space_size": "sqlfluff:indentation"}
        }
    ],
    "pluginParent": {
        "eslint-ts": "eslint",
        "eslint-vue": "eslint",
        "eslint-react": "eslint",
        "eslint-import": "eslint",
        "eslint-unicorn": "eslint",
        "eslint-stylistic": "eslint",
        "rubocop-rails": "rubocop",
        "rubocop-rspec": "rubocop",
        "rubocop-performance": "rubocop"
    },
    "deferred": [
        {"tool": "credo",
            "reason": "config is Elixir code (.credo.exs), not a data format"},
        {"tool": "luacheck",
            "reason": "config is a Lua script (.luacheckrc)"},
        {"tool": "lintr",
            "reason": "config is a DCF file holding R expressions (.lintr)"}
    ]
}