Skip to content

8Crafter-Studios/prettier-plugin-markdown-list-tabwidth

Repository files navigation

prettier-plugin-markdown-list-tabwidth

NPM Downloads NPM Version NPM License NPM Last Update NPM Unpacked Size GitHub last commit Discord

A Prettier plugin that reverts the change in Prettier v3.4.0 that altered how Markdown list items are indented.

Starting in v3.4.0, Prettier switched to a fixed single space between a list marker and the list text, regardless of your configured tabWidth.

Prior to this change, Prettier ensured that the marker + following spaces always consumed exactly tabWidth characters, producing indentation that aligned consistently across nested lists, multiline items, and mixed marker widths.

Any other issues you may have experienced due to the v3.4.0 update are also fixed by this plugin.

The way this plugin works is that it replaces the parser and printer/formatter for Markdown, MDX, and Remark with the ones from Prettier v3.3.3.

This plugin supports Markdown, MDX, and Remark.

Installation

Install Prettier if you haven't already:

npm i prettier --save-dev

Install the plugin:

npm i prettier-plugin-markdown-list-tabwidth --save-dev

Usage

To use the plugin, just add prettier-plugin-markdown-list-tabwidth to the plugins array of your prettier config.

// .prettierrc
{
    "plugins": ["prettier-plugin-markdown-list-tabwidth"]
}

If you are having issues with the plugin, try importing the full-replace version, which will export the Markdown language and options from Prettier v3.3.3 as well, which should fix your issue.

// .prettierrc
{
    "plugins": ["prettier-plugin-markdown-list-tabwidth/full-replace"]
}

Example config:

// .prettierrc
{
    "arrowParens": "always",
    "bracketSpacing": true,
    "endOfLine": "crlf",
    "htmlWhitespaceSensitivity": "css",
    "insertPragma": false,
    "singleAttributePerLine": false,
    "bracketSameLine": false,
    "jsxBracketSameLine": false,
    "jsxSingleQuote": false,
    "printWidth": 160,
    "proseWrap": "preserve",
    "quoteProps": "as-needed",
    "requirePragma": false,
    "semi": true,
    "singleQuote": false,
    "tabWidth": 4,
    "trailingComma": "es5",
    "useTabs": false,
    "embeddedLanguageFormatting": "auto",
    "vueIndentScriptAndStyle": false,
    "experimentalTernaries": true,
    "plugins": ["prettier-plugin-markdown-list-tabwidth"],
    "objectWrap": "preserve",
    "overrides": [
        {
            "files": ".hintrc",
            "options": {
                "parser": "json"
            }
        }
    ]
}

About

A Prettier plugin that reverts the change in Prettier v3.4.0 that altered how Markdown list items are indented.

Topics

Resources

Stars

Watchers

Forks

Contributors