prettier-plugin-markdown-list-tabwidth
v1.2.0
Published
A Prettier plugin that reverts the change in Prettier v3.4.0 that altered how Markdown list items are indented.
Maintainers
Readme
prettier-plugin-markdown-list-tabwidth
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-devInstall the plugin:
npm i prettier-plugin-markdown-list-tabwidth --save-devUsage
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"
}
}
]
}