fix(markdown): do not break before special prefix (#3172)

* fix(markdown): do not break before special prefix

* fix: add more cases
This commit is contained in:
Ika authored and Lucas Azzola committed 2017-11-07 20:40:09 +11:00
1 parent 76ee59a191
commit 2bdb652667
3 files changed
+78 -1

No files matched your search

+11 -1
View File
@@ -74,10 +74,20 @@ function genericPrint(path, options, print) {
: node.value
.replace(/(^|[^\\])\*/g, "$1\\*") // escape all unescaped `*` and `_`
.replace(/\b(^|[^\\])_\b/g, "$1\\_"); // `1_2_3` is not considered emphasis
case "whitespace":
case "whitespace": {
const parentNode = path.getParentNode();
const index = parentNode.children.indexOf(node);
const nextNode = parentNode.children[index + 1];
// special prefix that may cause different meaning
if (nextNode && nextNode.value.match(/^(#{1,6}|>+)|^(-|\+|\*)$/)) {
return node.value === "" ? "" : " ";
}
return getAncestorNode(path, SINGLE_LINE_NODE_TYPES)
? node.value === "" ? "" : " "
: node.value === "" ? softline : line;
}
case "emphasis": {
const parentNode = path.getParentNode();
const index = parentNode.children.indexOf(node);
@@ -42,3 +42,51 @@ This is a long long long long long long long long long long long long long long
long paragraph.
`;
exports[`special-prefix.md 1`] = `
abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc - abc abc abc
## Supported Rules
- [no-disabled-tests](/packages/eslint-plugin-jest/docs/rules/no-disabled-tests.md) - disallow disabled tests.
- [no-focused-tests](/packages/eslint-plugin-jest/docs/rules/no-focused-tests.md) - disallow focused tests.
- [no-identical-title](/packages/eslint-plugin-jest/docs/rules/no-identical-title.md) - disallow identical titles.
- [valid-expect](/packages/eslint-plugin-jest/docs/rules/valid-expect.md) - ensure expect is called correctly.
## Supported Rules
* [no-disabled-tests](/packages/eslint-plugin-jest/docs/rules/no-disabled-tests.md)
- disallow disabled tests.
* [no-focused-tests](/packages/eslint-plugin-jest/docs/rules/no-focused-tests.md)
- disallow focused tests.
* [no-identical-title](/packages/eslint-plugin-jest/docs/rules/no-identical-title.md)
- disallow identical titles.
* [valid-expect](/packages/eslint-plugin-jest/docs/rules/valid-expect.md) -
ensure expect is called correctly.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc
abc - abc abc abc
## Supported Rules
* [no-disabled-tests](/packages/eslint-plugin-jest/docs/rules/no-disabled-tests.md) -
disallow disabled tests.
* [no-focused-tests](/packages/eslint-plugin-jest/docs/rules/no-focused-tests.md) -
disallow focused tests.
* [no-identical-title](/packages/eslint-plugin-jest/docs/rules/no-identical-title.md) -
disallow identical titles.
* [valid-expect](/packages/eslint-plugin-jest/docs/rules/valid-expect.md) -
ensure expect is called correctly.
## Supported Rules
* [no-disabled-tests](/packages/eslint-plugin-jest/docs/rules/no-disabled-tests.md)
* disallow disabled tests.
* [no-focused-tests](/packages/eslint-plugin-jest/docs/rules/no-focused-tests.md)
* disallow focused tests.
* [no-identical-title](/packages/eslint-plugin-jest/docs/rules/no-identical-title.md)
* disallow identical titles.
* [valid-expect](/packages/eslint-plugin-jest/docs/rules/valid-expect.md) -
ensure expect is called correctly.
`;
@@ -0,0 +1,19 @@
abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc - abc abc abc
## Supported Rules
- [no-disabled-tests](/packages/eslint-plugin-jest/docs/rules/no-disabled-tests.md) - disallow disabled tests.
- [no-focused-tests](/packages/eslint-plugin-jest/docs/rules/no-focused-tests.md) - disallow focused tests.
- [no-identical-title](/packages/eslint-plugin-jest/docs/rules/no-identical-title.md) - disallow identical titles.
- [valid-expect](/packages/eslint-plugin-jest/docs/rules/valid-expect.md) - ensure expect is called correctly.
## Supported Rules
* [no-disabled-tests](/packages/eslint-plugin-jest/docs/rules/no-disabled-tests.md)
- disallow disabled tests.
* [no-focused-tests](/packages/eslint-plugin-jest/docs/rules/no-focused-tests.md)
- disallow focused tests.
* [no-identical-title](/packages/eslint-plugin-jest/docs/rules/no-identical-title.md)
- disallow identical titles.
* [valid-expect](/packages/eslint-plugin-jest/docs/rules/valid-expect.md) -
ensure expect is called correctly.